none
模式子页面访问父页面对象问题 RRS feed

  • 问题

  • A 页面 为 父页面(该页面有个gridview,id='gvData'),有一按钮,通过showmodalDialog打开子页面 b ,
    想在 b 页面,访问父页面的gridview对象,达到将gridview显示的结果,在 B 页面显示,并把gridview的第一列,第二列,删除,
    如何实现?

    A 页面中 <input type=button onclick="showModalDialog('b.aspx',window,……)">打开子页面
    b 页面中 <base target="_self">,<body onload="iniData();">
             <span id='spnData'></span>
             <script> function iniData(){ var tab = window.dialogArguments.window.getElementById('gvData').outerHTML;
                      document.getElementById('spnData').innerHTML = tab;}
             </script>
    这样能实现将父页面 gridview 显示的数据在 子页面中显示,但是 如何 将 该table的第一列,第二列删除呢?

    我是想 用javascript 实现 删除 第一,第二列,但是不知道如何做

    2011年8月9日 10:15

答案

全部回复

  • 高手们 没人回答吗?

    2011年8月10日 2:38
  • A 页面 为 父页面(该页面有个gridview,id='gvData'),有一按钮,通过showmodalDialog打开子页面 b ,
    想在 b 页面,访问父页面的gridview对象,达到将gridview显示的结果,在 B 页面显示,并把gridview的第一列,第二列,删除,
    如何实现?

    A 页面中 <input type=button onclick="showModalDialog('b.aspx',window,……)">打开子页面
    b 页面中 <base target="_self">,<body onload="iniData();">
             <span id='spnData'></span>
             <script> function iniData(){ var tab = window.dialogArguments.window.getElementById('gvData').outerHTML;
                      document.getElementById('spnData').innerHTML = tab;}
             </script>
    这样能实现将父页面 gridview 显示的数据在 子页面中显示,但是 如何 将 该table的第一列,第二列删除呢?

    我是想 用javascript 实现 删除 第一,第二列,但是不知道如何做


    这个题目用js不太好实现。我的意见:

    1)使用服务端控件的Button,设置PostBackUrl到B页面。

    2)然后B页面做这样判断以便获取GridView的实例——

      protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    if (IsCrossPagePostBack && Page.PreviousPage != null)
                    {
                        GridView gv = Page.PreviousPage.FindControl("GridView1") as GridView;
                        //做你希望的事情……
                    }

                }
            } 


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月10日 2:48
  • 注意写法是

    var tab = window.dialogArguments.document.getElementById('gvData').outerHTML;

    第二列删除?

    你需要遍历rows集合,然后执行deleteCell

     

    document.getElementById('tableID').rows[i].deleteCell(1)


    【孟子E章】
    2011年8月10日 7:27
    版主
  • 孟老大,能具体写个例子吗、

    document.getElementById('tableID').rows[i].deleteCell(1)

    这个方法我知道,但是

    var tab = window.dialogArguments.document.getElementById('gvData').outerHTML;

    这样之后,tab。rows[i].deleteCell(1) 不执行啊

    2011年8月10日 8:47
  • 你要搞清楚是table对象,而不是字符串。

    tab是什么?

     


    【孟子E章】
    2011年8月11日 0:42
    版主
  • 子页面

    var tab = window.dialogArguments.document.getElementById('gvData');

    这样也好像取不到tab对象啊,

    2011年8月16日 7:20
  • 帮忙解决啊

     

    • 已标记为答案 涵野 2012年12月3日 3:16
    2011年8月22日 7:28