关闭子页面,只刷新父页面的DataGrid

添加人:iyond七级(4340分)   添加时间:2007-06-13    阅读次数:1499  收藏此教程

界面说明:
父页面(CangKuEdit.aspx)中,按“新增”(id=imgbtnAdd),弹出CangKuAdd.aspx子页面。
子页面(CangKuAdd.aspx )中,按“确定”(id=btnSubmit),新增数据到数据库、关闭子页面、刷新父页面DataGrid 以反映数据的异动,注意只能刷新DataGrid,其他控件里输入的值要保留!


分两种情况:
一、 DataGrid直接写在父页面中

CangKuEdit.aspx
加上一段JS:

<HEAD>
    <script language="javascript">
        function doPostBack()
        {
            var theform;
            
            if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1)
            {
                theform = document.forms["CangKuLLEdit"];
            }
            else 
            {
                theform = document.CangKuLLEdit;
            }
            
            theform.__EVENTTARGET.value = "imgbtnAdd";
            theform.__EVENTARGUMENT.value = null;
            theform.submit();
        }
    
        function openwin(strBillNO)
        {
            window.open("CangKuAdd.aspx?returncontrol=imgbtnAdd&strBillNo="+ strBillNO,'new1','left=160,top=200,height=450,width=750,toolbar=0,scrollbars=2');
            return false;
        }
    </script>
</HEAD>

CangKuEdit.aspx.cs
在Page_Load中加上:
imgbtnAdd.Attributes.Add("ondblclick","doPostBack();");
imgbtnAdd.Attributes.Add("onclick","return openwin('"+txtBillNo.Text+"');");

CangKuAdd.aspx.cs
在在“确定”事件btnSubmit_Click中加上:
Response.Write("<script>window.opener.document.all.imgbtnAdd.fireEvent('ondblclick');window.close();</script>");

二、 DataGrid是父页面调用的用户控件(CCDataGrid.ascx,“新增”(id=imgbtnAdd)也在CCDataGrid.ascx中)

因为用户控件会在主页面控件之前被解析,
所以,用户控件的事件中,无法捕获主页面上的控件(如:<asp:textbox id="txtBillNo"/>,原因是它还未被解析)。
CCDataGrid.ascx
加上一段JS:
<script language="javascript">
    function PostBack()
    {
        __doPostBack("CCDataGrid1:CCDataGrid1_imgbtnAdd", null);
    }
</script>

CCDataGrid.ascx.cs
在Page_Load中加上:
imgbtnAdd.Attributes.Add("ondblclick","PostBack();");

在“确定”事件imgbtnAdd_Click中加上:
this.Page.RegisterHiddenField("IsOpenAddPage","true");
// 在用户控件的"新增"事件中注册一个隐藏控件:
CangKuEdit.aspx
在主页面的最底下写:
</tr>
            </table>
        </FORM>
        <script language="javascript">
            var obj = document.getElementById("IsOpenAddPage");
            if (obj!=null)
            {
                if (obj.value=='true')
                {
                    OpenAddPage();
                    obj.value='';
                }
            }
            
            function OpenAddPage()
            {
                var SID=document.getElementById('txtBillNo').value;
                var url='CangKuAdd.aspx?returncontrol=CCDataGrid1_imgbtnAdd&strBillNo='+SID;
                window.open(url,'new1','left=160,top=200,height=450,width=750,toolbar=0,scrollbars=2');
            }
        </script>
    </BODY>
</HTML>
CangKuAdd.aspx.cs
在“确定”事件btnSubmit_Click中加上:
Response.Write("<script>window.opener.document.all('CCDataGrid1_imgbtnAdd').fireEvent('ondblclick');window.close();</script>");
1页 第1上一页1下一页
相关的教程: DataGrid 刷新父页面
收藏此教程

当前平均分: 0.0(0 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: