我如何访问Page.FormViewDetails.DataKey?

问题描述 投票:0回答:1

我需要在一般的日志记录过程中从ASPNET中的DataList中获取所选项目,而不知道控件名称或数据键名称(可以在页面之间不同)。我可以在Page.FormViewDetails.DataKey中找到这个数据的唯一地方?

我尝试了以下方法:

System.Web.UI.Page page = System.Web.HttpContext.Current.Handler as System.Web.UI.Page;
var _barVariable = typeof(System.Web.UI.Page).GetField("FormViewDetails", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(page);

这给了一个对象引用没有设置异常,我可以在watch和VS调试器中看到Page.FormViewDetails的内容:VS debug

为什么我得到空引用异常?有没有更简单的方法来访问此信息?

asp.net forms datalist datakey
1个回答
0
投票

找到答案:

System.Reflection.PropertyInfo strProperty = page.GetType().GetProperty("FormViewDetails", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
System.Reflection.MethodInfo strGetter = strProperty.GetGetMethod(nonPublic: true);

FormView val = (FormView)strGetter.Invoke(page, null);
© www.soinside.com 2019 - 2024. All rights reserved.