【发布时间】:2011-11-13 23:48:30
【问题描述】:
我正在尝试使用 http 模块来禁用每个页面的文本框。这是我的示例编码
public void context_OnPreRequestHandlerExecute(object sender, EventArgs args)
{
try
{
HttpApplication app = sender as HttpApplication;
if (app != null)
{
Page page = app.Context.Handler as Page;
if (page != null)
{
page.PreRender += OnPreRender;
page.PreLoad += onPreLoad;
}
}
}
catch (Exception ex)
{
throw new ApplicationException(ex.Message);
}
}
public void OnPreRender(object sender, EventArgs args)
{
Page page = sender as Page;
if (page.IsCrossPagePostBack)
{
DisableAllTextBoxes(page);
}
}
private static void DisableAllTextBoxes(Control parent)
{
foreach (Control c in parent.Controls)
{
var tb = c as Button;
if (tb != null)
{
tb.Enabled = false;
}
DisableAllTextBoxes(c);
}
}
这种编码可以很好地工作,但是当我使用 server.transer 到另一个页面时。按钮无法禁用。 例如 webform1 转移到 webform2。 Webform 1 的按钮可以禁用,但 webform2 不能禁用。谁能解决我的问题?
【问题讨论】:
标签: asp.net