如何使用JavaScript仅刷新父窗口中的GridView

本文关键字:窗口 GridView 刷新 何使用 JavaScript | 更新日期: 2023-09-27 17:57:52

我有两个aspx文件,用于在销售中添加/删除产品。

  1. islemler.aspx
  2. SatisTedari.aspx

我在islemler.aspx中有一个GridView,这个GridView的名称是islemlerGridView。当在islemlerGridView上选择一行时,会出现一个按钮,这个按钮的名称为islemDetayGorButton

单击islemDetayGorButton时,会打开SatisTedark.aspx。在SatisTedark.aspx上有许多元素,如标签、文本框、下拉列表、网格视图,通过此SatisTeDark.aspx窗口,用户可以将产品添加到销售中/从销售中删除(销售显示在islemlerGridView中)。

我需要做的是,当有关销售的内容通过SatisTedark.aspx.更改时,更新islemlerGridView

我发现了这个问题将值从弹出窗口传递到父窗体的TextBox尝试了一些JavaScript,我不得不说我没有JavaScript的经验。我尝试刷新打开窗口,在我的条件下,打开窗口是islemler.aspx。我在SatisTedark.aspx上使用了以下代码:

<script type="text/javascript">
        function f2() {
            opener.document.getElementById("TextBox1").value = "hello world";//this is just from that example in the link
            opener.document.location.reload(true);//that is how I refresh islemler.aspx
        } 
</script> 

这是使用f2() 的按钮

<input type="button" value="return hello world" onclick="f2();" />

是的,此代码刷新islemler.aspx,但通过SatisTedark.aspx生成的canges没有反映在islemlerGridView上。

例如,

  1. 假设islemlerGridView显示销售id和销售总金额
  2. 假设我有销售X销售的产品A和产品A要花10块钱
  3. 我选择在上销售XislemlerGridViewislemDetayGorButton出现然后I单击该按钮,它就会打开SatisTedari.aspx
  4. 在SatisTedari.aspx中,我添加产品B花费5元出售X并保存

最后,我点击了使用f2()的按钮,它会刷新islemler.aspx,但Sale X的销售总金额单元格仍然是10元,但我需要它是15元,因为我在该销售中添加了一个新产品。

所以我的第一个问题是我应该怎么做才能得到预期的结果(已解决

问题:其次,有没有办法只刷新islemlerGridView而不刷新整个页面

好的,这对我的第一个问题有效

window.opener.location.href = window.opener.location.href; 

所以我的第一个问题现在有了答案。

问题:有没有办法只刷新islemlerGridView而不刷新整个页面

(我在IE9和Mozilla Firefox 4中尝试了所有这些)

链接我已经检查并发现了一些好东西:

  1. Javascript-刷新父级窗口
  2. 关闭弹出窗口后刷新父项窗口
  3. 正在刷新父窗口
  4. 从刷新父窗口javascript中的子窗口
  5. 从子窗口刷新父窗口使用javascript的窗口

如何使用JavaScript仅刷新父窗口中的GridView

function ReloadParent()
{
    if (window.parent) 
    { 
          window.parent.location.replace(window.parent.location.href);
    }
}

此代码将从您的子页面重新加载您的父页面。。。。。

我创建了一个名为GridRefreshPanel的UpdatePanel,并将网格放入该面板中,并使用这个

function f2() {
              window.opener.__doPostBack('GridRefreshPanel.ClientID', '');    
              //window.opener.__doPostBack('islemlerGridView.ClientID', ''); //this is also working without GridRefreshPanel 
        }