我怎样才能访问 Page.FormViewDetails.DataKey?

How can i access Page.FormViewDetails.DataKey?

我需要在不知道控件名称或数据键名称(可能因页面而异)的一般记录过程中从 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

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

找到答案:

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);