c# - 如何制作独立的更新面板?

标签 c# asp.net

据我了解 UpdatePanel,它们应该单独失效,即触发一个 UpdatePanel 不应触及另一个面板的控件。它确实适用于任何 UpdatePanel 之外的控件,但是任何 UpdatePanel 内部的控件都可以通过触发任何 UpdatePanel 来触及:

    <form id="form1" runat="server">
<asp:ScriptManager ID="SM1" runat="server"/>
<div>
    <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    <asp:UpdatePanel ID="update1" runat="server">
        <ContentTemplate>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="update2" runat="server">
        <ContentTemplate>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>
</div>
</form>

代码隐藏:

        protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        TextBox1.Text = "Clicked 1";
        TextBox2.Text = "Shouldn't appear";
        TextBox3.Text = "Neither should this";
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        TextBox2.Text = "Clicked 2";
        TextBox1.Text = "Shouldn't appear";
        TextBox3.Text = "Neither should this";
    }

“这也不应该”不会出现,但是会出现“不应该出现”:(。任何人都可以帮助我理解导致这种行为的原因吗?

最佳答案

现在我明白了,我忘了把 UpdateMode="Conditional"属性放到 UpdatePanels 上。

工作代码:

    <form id="form1" runat="server">
<asp:ScriptManager ID="SM1" runat="server"/>
<div>
    <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    <asp:UpdatePanel ID="update1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="update2" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>
</div>
</form>

关于c# - 如何制作独立的更新面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2093435/

相关文章:

c# - 如何在 Moq 4.13.1 中设置仅以严格模式返回任务的异步方法?

asp.net - 皮肤问题 telerik 控件

asp.net - 如何在没有边距标签的情况下将div居中?

javascript - URL 前缀 "res://"- 它有什么作用或者是什么创建了这个前缀?

c# - System.Net.Mail AlternateViews 丢失纯文本数据

c# - FluentValidation 和服务器+客户端远程验证器

.net - GridView 自动换行

c# - 中等信任下的 ODP.net 访问违规

c# - 如何在 WP7 中的枢轴页面上应用加速度计来导航页面?

c# - 有没有一种简单的方法可以基于 POC Entity Framework 实体(例如 ExtJs)生成 Javascript 模型?