嗨,我正在将一个用户控件(其中包含 GridPanel)加载到 tabPanel 中。
但是,当我单击 Gridpanel 编辑命令按钮时,服务器端事件方法不起作用并显示异常,例如
异常详细信息:System.Web.HttpException:未找到 ID 为“id8b177c82adb2e925”的控件。
我的代码是
对于 userControl : .ascx 代码是
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="GridPanelUserControl.ascx.cs" Inherits="Ext_PracticeExamples.GridPanelUserControl" %>
<ext:GridPanel ID="gpEmployeeList" runat="server" StripeRows="true" Title="Employee List" Layout="FitLayout"
Width="620" Height="400" AutoExpandColumn="FirstName">
<Store>
.....
</Store>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:ImageCommandColumn ID="imgSettings" runat="server" Text="Settings" Resizable="false">
<Commands>
<ext:ImageCommand Icon="BasketEdit" Style="text-align: center" CommandName="Settings">
</ext:ImageCommand>
</Commands>
<Listeners>
<Command Handler=" #{DirectMethods}.fnDisplaySettings(record.data.Company,record.data.Price,record.data.Change);" />
</Listeners>
</ext:ImageCommandColumn>
</Columns>
</ColumnModel>
以及未触发的相应 .cs 类文件方法。
[DirectMethod]
public void fnDisplaySettings(string name, double X, double Y)
{
// ..some Operation....
Response.Redirect("~/_Default.aspx");
}
在 webBrowser 中观察源页面时,我发现控件具有不同的 ID,因此相应的功能不显示。如果我给出“ClientIdMode = static”,当我在页面中加载相同的控件时,它会给我唯一 ID 问题。如果我在没有 UserControl 的单页中使用此代码,它工作正常。
我应该怎么做调用服务器端方法。
谢谢