我有两个用于在销售中添加/删除产品的aspx文件。
我在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
上。
例如,
islemlerGridView
显示
销售ID和销售总金额。islemlerGridView
和
islemDetayGorButton
出现在我身边
单击此按钮,它将打开
SatisTedarik.aspx。最后,我点击了使用f2()
的按钮并刷新了islemler.aspx,但Sale X的销售总金额仍然是10块钱,但我需要15块钱,因为我添加了一个新产品那个销售。
所以我的第一个问题是我应该做些什么来获得预期的结果?(已解决)
问题: 其次,有什么办法可以只刷新islemlerGridView而不是整个页面吗?
好的,事实证明这适用于我的第一个问题
window.opener.location.href = window.opener.location.href;
所以我的第一个问题现在有了答案。
问题: 有什么方法我只能刷新islemlerGridView
而不是整页?
(我在IE9和Mozilla Firefox 4中尝试了所有这些)
链接我已经检查并找到了一些好的东西:
答案 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
}