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


    界面说明:
    父页面(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.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>");

  • 相关阅读:
    [mysql]增加域设置 auto_increment
    【mysql乱码】解决php中向mysql插入中文数据乱码的问题
    WIN7 嵌入式系统安装教程 Windows Embedded Standard 2011 安装
    STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以
    STM32F4 输入输出(GPIO)模式理解
    STM32——GPIO之从库函数到寄存器的前因后果
    STM32 下的库函数和寄存器操作比较
    JLINK(SEGGER)灯不亮 USB不识别固件修复、clone修改
    lwip Light Weight (轻型)IP协议
    stm32开发之串口的调试
  • 原文地址:https://www.cnblogs.com/tohen/p/781426.html
Copyright © 2020-2023  润新知