FineUI 官方论坛
标题:
请教如何刷新Tab
[打印本页]
作者:
至冰
时间:
2012-4-5 16:04
标题:
请教如何刷新Tab
有两个页面,一个是新闻列表页面News.aspx,另一个是新闻编辑页面NewsEdit.aspx。
当打开NewsEdit.aspx添加一条新闻时,点“保存”关闭本页面并刷新News.aspx页,这样新添加的新闻也会立即显示出来。
捣鼓了好几天,无奈对extjs所知甚少,只实现了关闭,请教高手不吝赐教!
下面是关闭的代码:
function closeTab() {
var mainTab = parent.window.X('RegionPanel1_mainRegion_mainTabStrip');
//刷新
//alert(mainTab.findById('dynamic_added_tab_News1'));
var listTab = mainTab.findById('dynamic_added_tab_News1');
if (listTab != null) {
listTab.getUpdater().refresh();
//listTab.load();
}
//移除
var tabid = mainTab.getActiveTab().getId();
mainTab.removeTab(tabid);
}
上面虽有刷新代码,不过不起作用,也不报错,搞不出来了,只好来求救啦。
官方示例中已经有关闭当前窗体刷新父窗体的例子了,但没有关闭当前Tab并刷新另一Tab的功能,希望三石老大能加上!
作者:
至冰
时间:
2012-4-9 15:41
郁闷,怎么没有人回答啊,老大都移帖子了也不顺便给解答一下啊
作者:
Landroid
时间:
2012-4-9 15:49
至冰 发表于 2012-4-9 15:41
郁闷,怎么没有人回答啊,老大都移帖子了也不顺便给解答一下啊
其实你可以换种思路,不需要打开两个tab,新闻列表和新闻编辑都属于新闻管理,在列表中点编辑以后,跳转到编辑页,编辑完再跳转回列表页 不是也可以吗?? 我个人觉着没必要把一个简单的动作复杂化
作者:
feitian78
时间:
2012-4-9 16:35
弹出窗体编辑呗
作者:
小牛牛
时间:
2012-4-9 16:52
有个简单的办法吧!在保存后,刷新本页就可以了,或者添加一个Response.Redirect()到本页面,不是也可以吗?还有一个办法就是在tab chage的时候,刷新News.aspx,我想既然用了tab,就不会两个页面同时显现吧!菜鸟的言论,呵呵!
作者:
秋收
时间:
2012-11-13 08:58
<script type='text/javascript' language="javascript">
function OpenTab(tabID, url, title) {
var mainTabStrip = Ext.getCmp('<%= mainTabStrip.ClientID %>');
var currentTab = mainTabStrip.getTab(tabID);
if (!currentTab) {
mainTabStrip.addTab({
'id': tabID,
'url': url,
'title': title,
'closable': true,
'bodyStyle': 'padding:0px;'
});
} else {
mainTabStrip.setActiveTab(currentTab);
var iframe = Ext.DomQuery.selectNode('iframe', mainTabStrip.getActiveTab().body.dom);
iframe.src = url;// iframe.src;对
iframe.src
重新赋值即可刷新对应tabID 页面,但整个页面刷新,截入时间较长
}
}
</script>
作者:
秋收
时间:
2012-11-13 09:14
//主程序main.aspx脚本
<script type='text/javascript' language="javascript">
function OpenTab(tabID, url, title) {
var mainTabStrip = Ext.getCmp('<%= mainTabStrip.ClientID %>');
var currentTab = mainTabStrip.getTab(tabID);
if (!currentTab) {
mainTabStrip.addTab({
'id': tabID,
'url': url,
'title': title,
'closable': true,
'bodyStyle': 'padding:0px;'
});
} else {
mainTabStrip.setActiveTab(currentTab);
//var iframe = Ext.DomQuery.selectNode('iframe', mainTabStrip.getActiveTab().body.dom);
//iframe.src = url;// iframe.src;
}
}
</script>
//在要打开其它子网页程序中添加脚本
<script type="text/javascript">
function openHelloExtAspNet() {
var nID = '<%= ID.ClientID %>';
var mID = Ext.get(ntbxID).dom.value;
var murl = "K_Search/K_CZJQ_Search.aspx?ID=" + mID;
var tabID = 'dynamic_added_tab61';
OpenTab(tabID, murl, "XXXXX查询");
__doPostBack('SetSessionPostBack_ID', mID);
}
function OpenTab(tabid, url, title) {
parent.OpenTab(tabid, url, title);
}
</script>
//在要打开其它子网页程序Page_Load中添加
protected void Page_Load(object sender, EventArgs e)
{
this.ClientScript.GetPostBackEventReference(this, string.Empty);
if (!IsPostBack)
{
//...................
HttpContext.Current.Session["ID"] = "";
}
else
{
string eventTarget = (this.Request["__EVENTTARGET"] == null) ? string.Empty : this.Request["__EVENTTARGET"];
string eventArgument = (this.Request["__EVENTARGUMENT"] == null) ? string.Empty : this.Request["__EVENTARGUMENT"];
if (eventTarget == "SetSessionPostBack_ID")
HttpContext.Current.Session["ID"] = eventArgument;
}
}
//在子网页程序中增加定时器检测Session["ID"]变化,如Session["ID"]不为空,且与旧的ID不同,且重新检索数据,刷新部分页面
protected void Timer1_Tick(object sender, EventArgs e)
{
Timer1.Enabled = false;
mID = "";
if (HttpContext.Current.Session["ID" ] != null)
{
mID = (string)HttpContext.Current.Session["ID"].ToString();
} else mID = Request.Params["ID"];
if (mID == null) mID = "";
if (mID != "" && mID != oldID.Text)
{
ldID.Text= mID;
Grid_.PageIndex = 0;
Bind_Grid_();//重新绑定数据
HttpContext.Current.Session["ID"] = "";
}
Timer1.Enabled = true;
}
//这种方式比整个页面刷新效率要高
作者:
秋收
时间:
2012-11-13 09:23
修正补充:
其中ntbxID应改为nID
61为主菜单Tree的node.NodeID ,建议在生成菜单时自行主动对node.NodeID 赋值,不要使用默认值,以便能够准确确定子网页的tabID值
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4