我有两个 aspx 文件,用于在销售中添加/删除产品。
- islemler.aspx
- SatisTedarik.aspx
我在islemler.aspx中有一个GridView,这个gridView的名称是islemlerGridView
,当在islemlerGridView
上选择一行时,会出现一个按钮,这个按钮的名称是 >islemDetayGorButton
.
当单击 islemDetayGorButton
时,SatisTedarik.aspx 将打开。在 SatisTedarik.aspx 上有许多元素,例如标签、文本框、下拉列表、 GridView ,通过此 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 进行的更改不会反射(reflect)在 islemlerGridView
上。
例如,
- 假设
islemlerGridView
显示 销售 ID 和销售总额。 - 假设我有 X 促销事件 销售哪个产品 A 以及产品 一个要10 block 钱。
- 我选择促销 X
islemlerGridView 和
islemDetayGorButton
出现然后我 单击此按钮,它将打开 SatisTedarik.aspx。 - 在 SatisTedarik.aspx 中我添加 产品 B 花费 5 block 钱 出售 X 并保存它。
最后,我单击使用 f2()
的按钮,它刷新了 islemler.aspx,但 Sale X 的销售总金额单元格仍然是 10 钱,但是我需要它是 15 钱,因为我在那次促销中添加了新产品。
所以我的第一个问题是我应该做什么才能获得预期的结果?(已解决)
问题: 其次,有什么办法可以只刷新 islemlerGridView 而不是整个页面?
好吧,事实证明这对我的第一个问题有效
window.opener.location.href = window.opener.location.href;
所以我的第一个问题现在有了答案。
问题: 有什么办法可以只刷新 islemlerGridView
而不是整个页面?
(我在 IE9 和 Mozilla Firefox 4 中尝试了所有这些)
我检查过并发现了一些好东西的链接:
最佳答案
function ReloadParent()
{
if (window.parent)
{
window.parent.location.replace(window.parent.location.href);
}
}
此代码将从您的子页面重新加载您的父页面......
关于c# - 如何使用 JavaScript 仅刷新父窗口中的 GridView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6149938/