none
在母版页+updatepanel环境下,子页面刷新父页面GRIDVIEW RRS feed

  • 问题

  • 主页面:

    <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="主页面.aspx.cs" Inherits="页面刷新测试_主页面" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
        
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">打开子页面</asp:LinkButton>
        <br />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="ID" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
                    ReadOnly="True" SortExpression="ID" />
                <asp:BoundField DataField="入库单号" HeaderText="入库单号" SortExpression="入库单号" />
                <asp:BoundField DataField="供应商名称" HeaderText="供应商名称" SortExpression="供应商名称" />
                <asp:BoundField DataField="入库时间" HeaderText="入库时间" SortExpression="入库时间" />
                <asp:BoundField DataField="入库方式" HeaderText="入库方式" SortExpression="入库方式" />
                <asp:BoundField DataField="发票类型" HeaderText="发票类型" SortExpression="发票类型" />
                <asp:BoundField DataField="入库员" HeaderText="入库员" SortExpression="入库员" />
                <asp:BoundField DataField="制单时间" HeaderText="制单时间" SortExpression="制单时间" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:立得微电子有限公司ConnectionString %>" 
            SelectCommand="SELECT * FROM [产品入库]"></asp:SqlDataSource>
        <br />
        </ContentTemplate>
        </asp:UpdatePanel>
    </asp:Content>

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class 页面刷新测试_主页面 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            GridView1.DataBind();
        }
        protected void LinkButton1_Click(object sender, EventArgs e)
        {//刷新母版页中UpdatePanel中GRIDVIEW的值
            ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "openWin", "window.showModalDialog('子页面.aspx','','resizable:yes;scroll:yes;status:no;dialogWidth=800px;dialogHeight=800px;center=yes;help=no')", true);//关闭页面不提示
        }
    }

    2012年11月14日 15:44

答案

  • 1、window.showmodaldialog打开的子页面(模态)

    2、window.open 打开的页面 刷新父页面不同

    1、模态的话,会在父页面进行阻塞

    var result=window.showmodaldialog("url");

    //这里会发生阻塞直到子页面关闭

    父页面只有等待子页面关闭,才能获取到子页面返回的值,当然父页面也可以给子页面传值。

    2、而window.open打开的页面

    window.open("url");

    子页面可以使用

    window.opener.方法名     来触发父页面的操作

    也可以

    window.opener.document.getElementID 来获取document元素。

    2012年11月22日 23:44
    版主

全部回复

  • 子页面:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="子页面.aspx.cs" Inherits="页面刷新测试_刷新母版页中UpdatePanel中GRIDVIEW的值" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server">
    
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
            
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="关闭" />
                &nbsp;&nbsp;
                <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="刷新父页面" />
        </ContentTemplate>
            </asp:UpdatePanel>
        </div>
        </form>
    </body>
    </html>
    


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class 页面刷新测试_刷新母版页中UpdatePanel中GRIDVIEW的值 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(Page, this.GetType(), "CloseWin", "window.close(); ", true);
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            //刷新父页面GRIDVIEW语句。
        }
    }

    请问应该怎样才能刷新父页面的GRIDVIEW啊。

    2012年11月14日 15:46
  • 2012年11月16日 10:22
  • 再顶一下。
    2012年11月22日 13:26
  • 1、window.showmodaldialog打开的子页面(模态)

    2、window.open 打开的页面 刷新父页面不同

    1、模态的话,会在父页面进行阻塞

    var result=window.showmodaldialog("url");

    //这里会发生阻塞直到子页面关闭

    父页面只有等待子页面关闭,才能获取到子页面返回的值,当然父页面也可以给子页面传值。

    2、而window.open打开的页面

    window.open("url");

    子页面可以使用

    window.opener.方法名     来触发父页面的操作

    也可以

    window.opener.document.getElementID 来获取document元素。

    2012年11月22日 23:44
    版主