我刚刚使用AJAX Toolkit中的CascadingDropDown成功实现了SelectedIndexChanged,以便将所选值的查询字符串重定向到页面。我感到非常高兴!
但是,只有在页面上添加EnableEventValidation="false"才能使SelectedIndexChanged事件正常工作。问题是,CascadingDropDown将被放置在我的网站的MasterPage中作为产品选择器。
我不想在我的MasterPage中添加EnableEventValidation="false"!我查看了MSDN上的ClientScriptManager.RegisterForEventValidation方法,但是我完全不理解。
该怎么办?是否有使用ClientScriptManager.RegisterForEventValidation的简单示例?
谢谢...
编辑:这是代码:
但是,只有在页面上添加EnableEventValidation="false"才能使SelectedIndexChanged事件正常工作。问题是,CascadingDropDown将被放置在我的网站的MasterPage中作为产品选择器。
我不想在我的MasterPage中添加EnableEventValidation="false"!我查看了MSDN上的ClientScriptManager.RegisterForEventValidation方法,但是我完全不理解。
该怎么办?是否有使用ClientScriptManager.RegisterForEventValidation的简单示例?
谢谢...
编辑:这是代码:
<asp:ScriptManager ID="asm" runat="server" />
<div>
Series: <asp:DropDownList ID="SeriesList" runat="server" /><br />
Printers: <asp:DropDownList ID="PrinterList" runat="server"
onselectedindexchanged="PrinterList_SelectedIndexChanged"
AutoPostBack="True" /><br />
</div>
<asp:CascadingDropDown ID="ccd1" runat="server"
ServicePath="CascadingDropdown1.cs.asmx" ServiceMethod="GetSeries"
TargetControlID="SeriesList" Category="Series"
PromptText="Select Series" />
<asp:CascadingDropDown ID="ccd2" runat="server"
ServicePath="CascadingDropdown1.cs.asmx" ServiceMethod="GetPrintersForSeries"
TargetControlID="PrinterList" ParentControlID="SeriesList" Category="Printer"
PromptText="Select Printer" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="PrinterList" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
这里是事件:
protected void PrinterList_SelectedIndexChanged(object sender, EventArgs e)
{
int printerID = Convert.ToInt32(PrinterList.SelectedValue);
System.Web.HttpContext.Current.Response.Redirect("Default.aspx?PID="+printerID);
}