访问母版页中控件的代码

时间:2010-08-12 15:25:42

标签: c# asp.net master-pages

我需要在一组页面中一致地显示控件。所以我在ASP.NET / C#中使用MasterPage来做到这一点。但是我还需要以编程方式访问此控件,主要提供查看/隐藏选项,具体取决于是否单击了控件复选框。

这是MasterPage的来源

<div id="verifyInitial" runat="server">
    <asp:CheckBox ID="chkInitialVerify" runat="server" 
    oncheckedchanged="chkInitialVerify_CheckedChanged" />
    I agree that my initial data is correct.
</div>

<div id="verifyContinuous" runat="server">
    <asp:CheckBox ID="chkContinuousVerify" runat="server" 
    oncheckedchanged="chkContinuousVerify_CheckedChanged" />
    I agree that my continuous data is correct
</div>

现在在我要执行以下操作的代码中。基本上,如果一个人点击了初始div框的复选框,那么初始框就会消失,并且会显示连续框。但是,当我单击复选框时,似乎MasterPage背后的代码无法激活。这就是MasterPages的设计方式吗?我一直认为除了使用母版页上的页面加载之外,你还可以添加某种控制功能。

protected void chkInitialVerify_CheckedChanged(object sender, EventArgs e)
{
    verifyContinuous.Visible = true;
    verifyInitial.Visible = false;
}


protected void chkContinuousVerify_CheckedChanged(object sender, EventArgs e)
{
    verifyContinuous.Visible = false;
}

1 个答案:

答案 0 :(得分:1)

如果您希望这两个控件立即触发该页面的更改,那么您需要将AutoPostBack属性设置为true

<div id="verifyInitial" runat="server">
    <asp:CheckBox ID="chkInitialVerify" runat="server"  oncheckedchanged="chkInitialVerify_CheckedChanged" AutoPostBack="true" />
    I agree that my initial data is correct.
</div>

<div id="verifyContinuous" runat="server">
    <asp:CheckBox ID="chkContinuousVerify" runat="server" oncheckedchanged="chkContinuousVerify_CheckedChanged" AutoPostBack="true" />
    I agree that my continuous data is correct
</div>

否则,您需要在页面上使用<asp:button />或其他控件来触发回发并使您的事件处理程序运行。按钮或其他控件可以位于您的母版页或内容页面上,完全由您自己选择。