我需要在常规记录过程中从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引用异常? 有没有更简单的方法来访问此信息?
答案 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);