none
带updatepanel的子页怎么才能把包含着它的母版页控件隐藏掉? RRS feed

  • 问题

  • 子页所在的ContentPlaceHolder外层有个包裹它的div,我想通过子页的一个按钮事件令这个div消失,当然连子页的内容也一起消失了,当子页的该按钮在updatepanel里时不起作用,没有updatepanel时倒是可以。

    母版页的aspx

    <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title></title>
      <asp:ContentPlaceHolder id="head" runat="server">
      </asp:ContentPlaceHolder>
    </head>
    <body>
      <form id="form1" runat="server">
      <asp:ScriptManager ID="ScriptManager1" runat="server">
      </asp:ScriptManager>
      <div style="height: 404px">
        <table style="width: 100%; height: 230px;">
          <tr>
            <td colspan="3">
              &nbsp;</td>
          </tr>
          <tr>
            <td colspan="3">
            <div id="k" runat="server">
              <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
              </asp:ContentPlaceHolder>
              </div>
            </td>
          </tr>
          <tr>
            <td>
              &nbsp;</td>
            <td>
              &nbsp;</td>
            <td>
              &nbsp;</td>
          </tr>
          <tr>
            <td>
              &nbsp;</td>
            <td>
              &nbsp;</td>
            <td>
              &nbsp;</td>
          </tr>
        </table>
      </div>
      </form>
    </body>
    </html>

     子页的aspx

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default19.aspx.cs" Inherits="Default19" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
      <div>
      <asp:UpdatePanel ID="u1" runat="server" UpdateMode="Conditional"><ContentTemplate>
      <div>
      <asp:Button ID="bt1" runat="server" Text ="test" onclick="bt1_Click" />
      </div>
      </ContentTemplate></asp:UpdatePanel>
      </div>
    </asp:Content>
    

    子页的cs

    public partial class Default19 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void bt1_Click(object sender, EventArgs e)
        {
            MasterPage master = this.Master as MasterPage;
            master.FindControl("k").Visible = false;
        }
    }

     

    2010年4月22日 4:06

答案

  • updatepanel 是局部刷新的  你操作updatepanel外的元素 在updatepanel内部机制只是个封装ajax一系列操作 你那个div没有在updatepanel内  服务端操作执行基本上是执行了 你的updatepanel内部没有这个控件 它不会更新updatepanel外元素 updatepanel在客户端只是个div.innerHTML封装

    • 已标记为答案 scate233 2010年4月22日 9:22
    2010年4月22日 8:48

全部回复

  • updatepanel 是局部刷新的  你操作updatepanel外的元素 在updatepanel内部机制只是个封装ajax一系列操作 你那个div没有在updatepanel内  服务端操作执行基本上是执行了 你的updatepanel内部没有这个控件 它不会更新updatepanel外元素 updatepanel在客户端只是个div.innerHTML封装

    • 已标记为答案 scate233 2010年4月22日 9:22
    2010年4月22日 8:48
  • 那算了,找别的方法。
    2010年4月22日 9:22