当我在MasterPage .FindControl in Class中搜索我的问题的答案时,我偶然发现了这个解决方案,但这些代码行做了什么?有谁可以向我解释一下?
var pageHandler = HttpContext.Current.CurrentHandler;
Control ctrlHull = ((Page)pageHandler).Master.FindControl("imgbtnHull");
ImageButton imgBtnHull = (ImageButton)ctrlHull;
我自学C#编程所以我对这门语言知之甚少。
答案 0 :(得分:2)
// Get the page that is handling the current request.
var pageHandler = HttpContext.Current.CurrentHandler;
// Find the control named "imgbtnHull" on the master page.
Control ctrlHull = ((Page)pageHandler).Master.FindControl("imgbtnHull");
// Cast the control to type ImageButton.
ImageButton imgBtnHull = (ImageButton)ctrlHull;
所以基本上,它抓住了一个名为" imgbtnHull"的ImageButton的引用。在当前页面的母版页中定义。
答案 1 :(得分:1)
谨防在此行中获取NullReference var A = [1, 2, 3, 4];
var res = A.concat(A);
console.log(A, res);
因此,我建议您在将(ImageButton)ctrlHull
转换为null
之前检查ctrlHull
。让我解释其余的代码:
此代码段要执行的预期操作是在当前页面的母版页中找到名为
(ImageButton)
的ImageButton。
这可以通过以下方式实现:
imgbtnHull
:HttpContext本身就是一个
对象,您可以从中访问当前的服务页面
自页面实现以来HttpContext.Current.CurrentHandler
的IHttpHandler HttpContext.Current.CurrentHandler
在当前命名容器中搜索具有指定id参数的服务器控件。将返回指定的控件,如果指定的控件不存在,则返回null(这是我提到的第一点,.FindControl
)。NullReference
。 以下是修改后的代码:
imgBtnHull