我如何访问Page.FormViewDetails.DataKey?

时间:2019-04-15 22:17:37

标签: asp.net forms datalist 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

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

1 个答案:

答案 0 :(得分: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);