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

时间:2011-05-27 08:55:39

标签: c# javascript asp.net gridview

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

  1. islemler.aspx
  2. SatisTedarik.aspx
  3. 我在islemler.aspx中有一个GridView,当islemlerGridView上选择一行时,此gridView的名称为islemlerGridView,出现一个按钮,此按钮的名称为islemDetayGorButton

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

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

    我发现了这个问题Passing value from popup window to parent form's TextBox 并尝试使用JavaScript,我得说我没有JavaScript经验。 我尝试刷新开启窗口,在我的条件开启窗口中是islemler.aspx我在SatisTedarik.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,但是通过SatisTedarik.aspx制作的小册子没有反映在islemlerGridView上。

    例如,

    1. 假设islemlerGridView显示 销售ID和销售总金额。
    2. 让我说我有Sale X. 销售哪种产品A和产品 花费10美元。
    3. 我选择Sale X islemlerGridViewislemDetayGorButton出现在我身边 单击此按钮,它将打开 SatisTedarik.aspx。
    4. 在SatisTedarik.aspx中我正在补充 产品B,5美元 销售X并保存。
    5. 最后,我点击了使用f2()的按钮并刷新了islemler.aspx,但Sale X的销售总金额仍然是10块钱,但我需要15块钱,因为我添加了一个新产品那个销售。

      所以我的第一个问题是我应该做些什么来获得预期的结果?已解决

      问题: 其次,有什么办法可以只刷新islemlerGridView而不是整个页面吗?

      好的,事实证明这适用于我的第一个问题

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

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

      问题: 有什么方法我只能刷新islemlerGridView而不是整页?

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

      链接我已经检查并找到了一些好的东西:

      1. Javascript - Refresh Parent Window?
      2. refresh parent after closing pop up window
      3. Refreshing parent window
      4. Refresh the parent window from the child window in javascript
      5. Refresh parent window from child window using javascript

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

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

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