gpt4 book ai didi

asp.net - 访问动态数据中正在编辑的对象/行

转载 作者:行者123 更新时间:2023-12-02 11:19:12 26 4
gpt4 key购买 nike

我正在修改 ASP.NET 动态数据使用的“Edit.aspx”默认页面模板并添加一些附加控件。我知道我可以通过查看 DetailsDataSource.GetTable().EntityType 找到正在编辑的对象的类型,但如何才能看到实际的对象本身呢?另外,我可以更改对象的属性并告诉数据上下文提交这些更改吗?

最佳答案

也许您已经找到了解决方案,但是我想分享我的经验。

结果证明这是一个很棒的皮塔饼,但我已经设法获得了编辑行。我必须提取DetailsDataSourceWhereParameters,然后在运行时创建一个查询。

下面的代码适用于具有单个主键的表。如果您有复合键,我想,它将需要修改:

Parameter param = null;
foreach(object item in (DetailsDataSource.WhereParameters[0] as DynamicQueryStringParameter).GetWhereParameters(DetailsDataSource)) {
param = (Parameter)item;
break;
}

IQueryable query = DetailsDataSource.GetTable().GetQuery();
ParameterExpression lambdaArgument = Expression.Parameter(query.ElementType, "");
object paramValue = Convert.ChangeType(param.DefaultValue, param.Type);
Expression compareExpr = Expression.Equal(
Expression.Property(lambdaArgument, param.Name),
Expression.Constant(paramValue)
);
Expression lambda = Expression.Lambda(compareExpr, lambdaArgument);
Expression filteredQuery = Expression.Call(typeof(Queryable), "Where", new Type[] { query.ElementType }, query.Expression, lambda);
var WANTED = query.Provider.CreateQuery(filteredQuery).Cast<object>().FirstOrDefault<object>();

关于asp.net - 访问动态数据中正在编辑的对象/行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/612509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com