具体内容是这样的:有一个窗口,窗口下方对应有一个iframe框架,显示上面的对应子内容。是一对多的关系。下面框架链接一个页面,用datagrid显示。  把datagrid的某一列设置成了摸板列。并且设置了他的CommandName为Edit.然后在datagrid的EditCommand事件里面写了一段代码 用来实现点击某一列。弹出一模式窗口来显示具体的内容。具体代码如下: string str_id = e.Item.Cells[0].Text;Response.Write("<script language=javascript>window.showModalDialog('../Page_Ifarme.aspx?type=20&id=" + str_id + "',window,'scroll:no;dialogWidth:800px; dialogHeight:300px;center=yes;help:no');</script>");  然后在模式窗口里有删除 和返回按钮。在点删除或返回时,关闭模式窗口页面 。同时要刷新有datagrid的页面  该如何处理啊??   如果这样不行 ,那能否实现 点击模板列中某一项时 找到他对应的ID值   然后哪个弹窗代码 写到***.aspx中这样若能实现 那刷新就好办了死就死在 现在哪个弹窗代码 只能写在***.aspx.cs上 至少我还不知道怎么解决 主要是要找到对应的id值  跪求答案了!··

解决方案 »

  1.   

    刷新父窗口可以在子页面用:window.opener.location.href=window.opener.location.href
      

  2.   

    这个无效  这又不是window.open打开的页面。。是window.showModalDialog
      

  3.   

    我这里用的是超链绑定了ID,然后传ID到模态框                    <asp:GridView ID="UserGridView" runat="server" AllowPaging="True" BorderColor="Blue" AutoGenerateColumns="false"
                            BorderStyle="None" BorderWidth="1px" CellPadding="4" CellSpacing="2" Font-Size="Small"
                            ForeColor="#333333" GridLines="None">
                            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                            <RowStyle BackColor="#EFF3FB" />
                            <EditRowStyle BackColor="#2461BF" />
                            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                            <AlternatingRowStyle BackColor="White" />
                            <Columns>
                                <asp:BoundField DataField="AuthId" HeaderText="编号" />
                                <asp:BoundField DataField="AuthName" HeaderText="权限名" />
                                <asp:TemplateField>
                                    <ItemTemplate>
                                       <a href="javascript:ModifyAddAuth( <%# Eval("AuthId")%> );">修改</a>
                                       <a href="javascript:ModifyDeleteAuth( <%# Eval("AuthId")%> );">删除</a>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>
      

  4.   

    调用的JS文件   <script language="javascript" type="text/javascript" src="../../js/JScript.js"></script>
        <script language="javascript" type="text/javascript">
            function ModifyAddAuth( objid )
            {
                ShowModalWindow( "/MaintenanceCenter/Config/Auth/AuthEdit.aspx?Objid=" + objid, "" , 100 , 100 , 500 , 200  );   
                refreashWin();
            }
            function ModifyDeleteAuth(objid)
            {
                ShowModalWindow( "/MaintenanceCenter/Config/Auth/AuthDelete.aspx?Objid=" + objid, "" , 100 , 100 , 500 , 200  );   
                refreashWin();
            }
        </script>
      

  5.   


    //这是其中一个页面的后台代码。我用的是缓存绑定的GridView。当你确定删除的后,关闭这个模态框。
            protected DAL.Entity.Auth m_entity;        protected void Page_Load(object sender, EventArgs e)
            {
                m_entity = new DAL.Entity.Auth();        }        protected void BtnConfirm_Click(object sender, EventArgs e)
            {
                if (Request.QueryString["Objid"] != null && Request.QueryString["Objid"] != null)
                {
                    int entityId = int.Parse(Request.QueryString["Objid"]);
                    m_entity.AuthId = entityId;
                    m_entity.Delete();            }
                this.msg.Text = "OK";
                Common.CommonAPI.CloseWindows(Response);//关闭
            }
        }//这个是类库中的方法。(Common.CommonAPI 类库和类名,这里你可以不用管)
            public static void CloseWindows( HttpResponse response )
            {
                response.Redirect("/MaintenanceCenter/ClosePage.htm");
            }这个是ClosePage.htm中所调用的JS    <script language="javascript" type="text/javascript">
            function MyPageLoad()
            {
                self.close();
            }
        </script>
    </head>
    <body onload="MyPageLoad();">
      

  6.   

    对了删除后要刷新缓存。这个你就不用我多说了。下面只是我的方法。Common.Auth.AuthRule.GetInstance().RefreashCache();
      

  7.   

    用接收返回值的方法来刷新页面父页面 中//Response.Write 出这样的脚本:
     var returnValue = window.showModalDialog('../Page_Ifarme.aspx?type=20&id=" + str_id + "',window,'scroll:no;dialogWidth:800px; dialogHeight:300px;center=yes;help:no'); 
    if(returnValue="reload")
    {
    window.location.reload();
    } 弹出的页面中设置返回值   function reLoadParentPage()
       {
           window.returnValue="reload";
            window.close(); 
       }在button中触发这一事件
    <input id="Button1" type="button" value="返回" onclick="reLoadParentPage()"/>
      

  8.   

    看看这个把LZhttp://blog.csdn.net/jecray/archive/2007/04/11/1561184.aspx