【问题标题】:Accessing Code Behind for a Control in a Master Page访问母版页中控件的代码隐藏
【发布时间】:2010-08-12 23:41:13
【问题描述】:

我需要在一组页面中一致地显示控件。所以我在 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;
}

【问题讨论】:

    标签: c# asp.net master-pages


    【解决方案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>
    

    否则,您需要在页面上使用&lt;asp:button /&gt; 或其他一些控件来触发回发并让您的事件处理程序运行。按钮或其他控件可以在您的母版页上或在您的内容页上,完全由您选择。

    【讨论】:

    • 哦,哇,我知道我错过了回想起来如此明显的东西。谢谢!
    • 没问题,很高兴我能帮上忙 =)
    猜你喜欢
    • 1970-01-01
    • 2019-02-24
    • 2013-03-19
    • 1970-01-01
    • 2010-11-25
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多