`

panel_load_刷新

阅读更多
引用页刷新的问题不仅仅体现在TabPanel里,只要是带load的panel都是适用的~怎么让一个panel去刷新和更新呢?
更新的话很容易,只要调用Ext.Panel.load()就可以,panel会自动用load方法里的参数去更新panel。
load的官方描述如下:
load( Object/String/Function config ) : Ext.Panel
Loads this content panel immediately with content returned from an XHR call.
那么按理说,我们要刷新的话,只要用load方法,传进原来的参数就可以实现刷新了,但是对于TabPanel这种,panel很多,ExtJS的Panel本身没有得到URL的方法,自己记录管理URL又太麻烦,要是能让他有reload方法就好了。其实是可以reload的,只是这个方法不在Panel里,往下看!
我们先来看一下,panel是用什么去ajax加载引用另一个页面的。我们看下Panel的autoLoad,对于autoLoad的官方描述如下:
autoLoad : Object/String/Function
A valid url spec according to the Updater Ext.Updater.update method. If autoLoad is not null, the panel will attempt to load its contents immediately upon render.
The URL will become the default URL for this panel's body element, so it may be refreshed at any time.

原来Panel的autoLoad是借助Ext.Updater,在Updater的Method里,我们发现有这样一个方法:
refresh( [Function callback] ) : void
Refresh the element with the last used url or defaultUrl. If there is no url, it returns immediately
Parameters:
callback : Function
(optional) Callback when transaction is complete - called with signature (oElement, bSuccess)
Returns:
void
看看,Updater本身是有刷新的方法的,那么接下来只要找到Panel和Updater的关联的方法,就可以让Panel自己刷新了。
Panel里有个叫getUpdater()的方法,官方描述如下:
getUpdater() : Ext.Updater
Get the Ext.Updater for this panel. Enables you to perform Ajax updates of this panel's body.
Parameters:
None.
Returns:
Ext.Updater

问题解决了,我们来写2个function去分别封装下panel的“更新”和“刷新”:
//刷新一个panel
function Panel_Refesh(panelObj)
{
//panelObj是Ext.Panel
panelObj.getUpdater().refresh();
}
//更新一个panel
function Panel_URLUpdate(panelObj,newURL)
{
//panelObj是Ext.Panel,newURL是一个String
panelObj.load(newURL);
}

Further more,针对TabPanel:(假设变量_myTabs是TabPanel的句柄,全局的)
function TabPanel_RefreshActiveTab()
{
_myTabs.getActiveTab().getUpdater().refresh();
}
function TabPanel_RefreshTab(panelID)
{
var x=_myTabs.getCmp(panelID);
if(x)
{
   _myTabs.setActiveTab(x);
   x.getUpdater().refresh();
}
}

分享到:
评论

相关推荐

    asp.net无刷新二级联动下拉菜单

    <asp:UpdatePanel ID="panel1" runat="server"> ``` 上述代码设置了`UpdatePanel`及其触发器,使得当`List1`的值发生改变时,可以触发局部刷新。 3. **配置第一个DropdownList**: ```csharp ``` ...

    extjs4.2.1 tabPanel刷新及关闭标签

    ### ExtJS 4.2.1 TabPanel 刷新与关闭标签功能详解 #### TabPanel 组件简介 在ExtJS框架中,`TabPanel`组件是一个非常实用且强大的UI控件,它允许用户在一个界面上组织多个相关的视图或面板,并通过标签页的形式...

    ext gride刷新

    然而,当你提到"ext gride刷新又回到第一页",这通常涉及到Grid组件的刷新行为以及分页设置。 在Ext Grid中,刷新通常意味着重新加载数据源,更新表格显示以反映最新的数据变化。当你点击刷新按钮或者调用`store....

    asp.net C# 动态生成控件及其取值

    如果在`Page_Load`中生成控件,每次页面刷新都会丢失其状态,因为这些控件在页面的前后端之间不会被保留。 2. **从数据库获取数据**: 使用ADO.NET或者Entity Framework等数据访问技术,可以连接到数据库并执行SQL...

    项目_网吧收费系统主程序

    private void F_main_Load(object sender, EventArgs e) { //定义SQL语句 string str_sql = string.Format("select cardid,cardnumber,cardbalance,transacttime from cardinfo"); //生成适配器实例 da = new ...

    一个可保持GridView 在 Update Panel中滚动时的Header的位置相对不动的程序例子

    在ASP.NET开发中,GridView控件是用于展示数据表格的常用组件,而UpdatePanel则是实现页面部分刷新的关键元素。在动态网页中,当UpdatePanel更新内容时,可能会导致GridView的滚动位置重置,用户体验受到影响。标题...

    学生信息管理系统 vb

    同时,通过Form1_Load事件加载初始数据,Button2_Click_1事件处理刷新操作。 在程序实现过程中,使用VB.Net的事件驱动编程,如在Form1加载时禁用文本框,填充ListBox和DataGrid,然后在刷新按钮点击时重新填充数据...

    asp.net实现动态添加控件并添加事件实例

    3. **将控件添加到容器**:然后,将新创建的控件添加到页面的某个容器控件(如 Panel 或 Form),使用 `Controls.Add()` 方法。 4. **绑定事件**:为了响应用户操作,需要为动态控件添加事件处理程序。由于动态控件...

    ScriptManagerUpdatePanel

    Panel 中,以减少不必要的页面重绘。现在我们尝试在 UpdatePanel 控件外部放置一个触发控件,例如一个按钮,来实现对内部控件的异步更新。 1. 首先,保持页面上的 ScriptManager、UpdatePanel 和 Label2 控件不变。...

    Accordion--AjaxControlToolkit 之一(分组菜单)

    通常,这涉及到在页面生命周期的某个阶段(如Page_Load事件)执行SQL查询,然后将查询结果绑定到Accordion控件。这种方式适用于数据频繁更新或需要根据用户需求动态加载内容的场景。 在使用Accordion控件时,有几个...

    ExtAspNet_v2.3.2_dll

    ExtAspNet - ExtJS based ASP.NET Controls with Full AJAX Support ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI... -这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel...

    ASP.NET图片切换动态版

    可能使用了Panel或UpdatePanel来封装图片展示区域,以实现无刷新更新。 2. **AJAX**:尽管VS2005时期的ASP.NET AJAX扩展可能不如后来的版本完善,但仍然可以通过ASP.NET AJAX Control Toolkit实现部分异步更新功能...

    Telerik Ajax加载

    Telerik Ajax加载是一种高效的方法,用于在ASP.NET开发中实现实时页面更新,无需完全刷新整个页面。Telerik是一家提供专业UI控件和工具的公司,其Ajax框架为Web应用程序提供了丰富的用户体验。在这个主题中,我们将...

    Web 服务器控件.pptx

    除了上述控件,ASP.NET还提供了选择控件(如RadioButton、CheckBox、DropDownList等),容器控件(如Panel、FormView等)以及其他特殊用途的控件,如GridView用于显示和编辑表格数据,Calendar控件用于日历选择等。...

    动态生成html标签

    3. 将控件添加到容器控件(如`Panel`或`PlaceHolder`)中,或者直接添加到`Page`的`Controls`集合中。 4. 如果需要,可以通过`Control`的`Attributes`集合添加额外的HTML属性。 5. 触发页面生命周期的其他事件,如`...

    EasyUi_api

    API中包含了如`datagrid`、`reload`、`loadData`、`getSelected`等方法,用于初始化、刷新、加载数据以及获取选中行。 2. **Window**: Window组件允许在页面上创建弹出式窗口,可以用来显示信息或者作为独立的工作...

    EasyUI API 1.7.zip

    5. **数据绑定**:了解如何将数据与组件关联,例如表格(datagrid)的数据源配置,以及使用`loadData`、`reload`方法加载和刷新数据。 6. **主题和样式**:学习如何定制EasyUI的主题,改变组件的外观,以及如何...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,TabStrip)都可以通过这种方式全屏。 -简单方便,示例可以参考 default.aspx 或者 other\...

    TerraExplorer_Pro培训教材

    - **Flight Panel - 飞行面板**:显示/隐藏飞行控制面板。 - **Upper Left Container - 左上窗口**:自定义窗口布局。 - **Lower Left Container - 左下窗口**:自定义窗口布局。 - **Hide Terrain Imagery - ...

Global site tag (gtag.js) - Google Analytics