我的 main.aspx
<ext:ResourceManager ID="ResourceManager1" runat="server" Theme="Gray" />
<form id="form2" runat="server">
<ext:Panel runat="server" ID="anaPanel" Title="OSO" Icon="Car">
<TopBar>
<ext:Toolbar runat="server" Layout="FitLayout">
<Items>
<ext:Menu ID="Menu1" runat="server" Floating="false" Layout="HBoxLayout" ShowSeparator="false"
AnimCollapse="true" Cls="horizontal-menu">
<Defaults>
<ext:Parameter Name="MenuAlign" Value="tl-bl?" Mode="Value" />
</Defaults>
<Items>
<ext:MenuItem ID="MenuItem1" runat="server" Text="" Icon="Group">
<Menu>
<ext:Menu ID="Menu2" runat="server">
<Items>
<ext:MenuItem Text="new card" Icon="GroupAdd">
<DirectEvents>
<Click OnEvent="AddNewCart_Click"></Click>
</DirectEvents>
</ext:MenuItem>
...............
...............
</ext:Panel>
</form>
我的 maninpage codebehind 是这样的。
protected void AddNewCart_Click(object sender, DirectEventArgs e)
{
string path = "Pages/Kart.aspx";
Window win = CreateWindows(MyWindow,Icon.Group,path,"new card", 420, 500);
// private Window CreateWindow(string Id, Icon ic, string path, string Title, int Heigh, int width){......};
//I get the new Window and pass some values and turn it back.
win.Render(this.Form);
win.Show();
}
在 Kart.aspx 内部还有一个按钮,当单击按钮时,加载第二个子页面与上面的代码相同,但更改了路径(假设加载 B.aspx)。我这样做就像 window.parent.App.direct.MethodName ()。*[在 main.aspx 中描述的 MethodName()] 但我需要刷新 Kart.aspx 内的网格,当来自 B.aspx 的新项目时,*我试图像这个 window.parent 一样到达 Kart.aspx 方法。 App.direct.MethodName() 但似乎不起作用。它只有在 main.aspx 代码隐藏中描述时才有效。一位朋友告诉我,这样做的唯一方法是使用 javascript" 像这样
代码隐藏
X.Call("ReloadGrid");
function ReloadGrid() {
var grid = window.parent.Ext.getCmp('GridId');
//grid reloading code
}
但我不知道如何通过此脚本重新加载网格。或者有另一种方法可以做到这一点。谢谢
我的卡丁车.aspx;
<ext:GridPanel runat="server" ID="grid1" Title="" Height="460"
Flex="1" Scroll="Vertical">
<Store>
<ext:Store ID="strKart" runat="server">
<Model>
<ext:Model ID="Model1" runat="server" IDProperty="Id">
<Fields>
<ext:ModelField Name="Id" />
<ext:ModelField Name="name" />
<ext:ModelField Name="surname" />
</Fields>
</ext:Model>
</Model>
<Listeners>
<Exception Handler="Ext.Msg.alert('Products - Load failed', operation.getError());" />
</Listeners>
</ext:Store>
</Store>
及其背后的代码
[DirectMethod]
public void ReloadKart()
{
this.strKart.DataSource = cari_bll.GetAll();
this.strKart.DataBind();
}
**尝试从单击按钮的 B.aspx 运行 ReloadKart () 函数