首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要updatePanel的帮助

需要updatePanel的帮助
EN

Stack Overflow用户
提问于 2010-09-22 06:43:51
回答 3查看 3.6K关注 0票数 0

我的内容页面

代码语言:javascript
复制
  <asp:updatePanel id="Panel1" runat="server" Visible="true">
         <ContentTemplate>
                <div>
                    blah blah
                </div>
          </ContentTemplate>
    </asp:updatePanel>

    <asp:updatePanel id="Panel2" runat="server" Visible="false">
         <ContentTemplate>
                <div>
                    yada yada
                </div>
          </ContentTemplate>
    </asp:updatePanel>     

代码文件 ..The以下代码在提交按钮末尾单击事件:-

代码语言:javascript
复制
            Panel1.Visible = false;
            Panel2.Visible = true;

现在,我正在使用asp:Panel..then,它正在工作,fine..like面板1会隐藏,面板2会显示,在我将asp:面板改为asp:updatePanel之后,提交按钮就不能工作了!!

怎么突然出问题了??我把它改成了updatePanel,这样页面就不会刷新了.我们不是这样实现这个东西的吗?

代码语言:javascript
复制
       <asp:updatePanel id="Panel1" runat="server">
          <ContentTemplate>
          <div>
     <p>
        Type ur name

                <asp:TextBox ID="name" runat="server">
                </asp:TextBox>
       </p>


        <asp:Button ID="btn" OnClick="btn_Click" runat="server" 
        Text="Submit" />
     </div>

    </ContentTemplate>
            </asp:updatePanel>


   <asp:updatePanel id="Panel2" runat="server" Visible="false">
    <ContentTemplate>
    <div>
       Thank You!

    </div>
    </ContentTemplate>
    </asp:updatePanel>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-22 07:10:30

如果将Visible="false"设置在UpdatePanel上,则根本不会将其呈现给客户端。因此,如果您正在执行Ajax回发,客户端将无法使不可见的UpdatePanel可见,因为它只是不存在。

将UpdatePanels看作标记,显示您希望在Ajax回发中更新的页面的哪些部分。对于您的场景,我认为最简单的解决方案是同时使用UpdatePanels和面板。另外,由于您正在更新的两件事情(两个面板)是相邻的,所以不需要使用两个单独的UpdatePanels:

代码语言:javascript
复制
<asp:updatePanel id="UpdatePanel1" runat="server">
  <ContentTemplate>
    <asp:Panel id="Panel1" Visible="true" runat="server">
      blah blah
    </asp:Panel>
    <asp:Panel id="Panel2" Visible="false" runat="server">
      yada yada
    </asp:Panel>
  </ContentTemplate>
</asp:updatePanel>

然后在代码隐藏中,更改Panel控件上的Visible属性。

票数 1
EN

Stack Overflow用户

发布于 2010-09-22 06:51:07

http://msdn.microsoft.com/en-us/magazine/cc163413.aspx#S3,你可以阅读

多重UpdatePanels

一个页面可以承载多个UpdatePanels。默认情况下,当页面上的一个UpdatePanel更新时,页面上的另一个UpdatePanels也会更新。有时,这正是您想要的,但更多的情况是,您不需要每个UpdatePanel更新来响应其他UpdatePanels。通过将页面上每个UpdatePanel控件的UpdateMode属性设置为“条件”,可以选择哪些UpdatePanel实例更新(以及何时更新)。然后,当一个UpdatePanel更新并调用服务器端事件处理程序时,在要更新的其他面板上调用UpdatePanel.Update。这减少了呈现控件的数量,从而减少了服务器上的负载,并减少了响应中的数据量,因为不更新的UpdatePanels不向响应添加任何内容。

票数 2
EN

Stack Overflow用户

发布于 2010-09-22 06:48:46

我不知道你的提交按钮在哪里,但也许可以尝试用以下方式更新这些面板:

代码语言:javascript
复制
Panel1.Update();
Panel2.Update();
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3766901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档