如何检查动态创建的控件是否已回发?以下代码无效。
Control control = null;
string ctrlname = page.Request.Params.Get("__EVENTTARGET");
if (ctrlname != null && ctrlname != string.Empty)
{
control = page.FindControl(ctrlname);
}
else
{
foreach (string ctl in page.Request.Form)
{
Control c = page.FindControl(ctl);
if (c is System.Web.UI.WebControls.Button)
{
control = c;
break;
}
if (c is System.Web.UI.WebControls.ImageButton)
{
control = c;
break;
}
}
}
return control;
我在page_Init上动态创建了一些图像按钮。但上面的代码总是返回null。这是为什么?如何检查图像按钮是否已回发?
注意:我能够处理这些图像按钮的点击事件。
答案 0 :(得分:1)
如果您想知道哪个控件在Page_Load时启动了回发,则Steve C. Orr有一些提示:
你可以覆盖 页面的RaisePostBackEvent方法 类。第一个参数发送到 这个方法是造成的对象 回发。记得打电话
base.RaisePostBackEvent()
所以 回发事件被正确引发。或者,而不是加载事件 你可以移动条件代码 发生在PreRender事件中 在所有控制事件之后。所以 然后你会知道哪个控件 导致了回发。
...
如果您的ImageButton位于网格内, 你可以按下你的按钮了 commandName和itemCommand检查 如果命令是你的命令。
http://www.velocityreviews.com/forums/t90304-detect-which-imagebutton-caused-postback.html