我正在嘗試使用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無法禁用。有誰能解決我的問題嗎?