- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚从 AJAX 工具包中获得了一个 CascadingDropDown,它与 SelectedIndexChanged 一起使用以重定向到一个传递选定值的查询字符串的页面。我很开心!
但是,我只是通过向页面添加 EnableEventValidation="false"来使 SelectedIndexChanged 事件起作用。问题是 CascadingDropDown 将作为产品选择器放置在我网站的 MasterPage 中。
我不喜欢将 EnableEventValidation="false"添加到我的 MasterPage!我查看了 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);
}
最佳答案
解决这个棘手问题的方法是自定义下拉控件!
因此,为了结束这个问题并希望能帮助其他人解决这个问题,我就是这样做的:
我使用以下代码创建了一个名为 NoValidationDropDownList.cs 的 cs 文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
namespace My.Namespace.Controls
{
public class DdlNoEventValidation : DropDownList
{
}
}
然后在下拉控件所在的 aspx 页面上(在我的例子中是 MasterPage)我放置了这个:
<%@ Register TagPrefix="asp" Namespace="My.Namespace.Controls" %>
接下来我像这样修改级联下拉框:
<p><asp:DdlNoEventValidation ID="DD1" runat="server" /></p>
<p><asp:DdlNoEventValidation ID="DD2" runat="server"
onselectedindexchanged="My_SelectedIndexChanged"
AutoPostBack="True"
/></p>
据我了解,创建自定义下拉控件会绕过事件验证。这样您就不需要关闭整个页面的事件验证。在我的例子中,由于控件位于 MasterPage 中,整个站点的事件验证将被关闭!
唉,这不是我的原创作品,所以这里是原始引用:http://johanleino.wordpress.com/2009/11/17/cascadingdropdown-casues-invalid-postback-or-callback-argument-error/
谢谢约翰!
希望这有助于...
关于c# - ASP.Net CascadingDropDown 和 EnableEventValidation ="false",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088146/
我正在研究 Kendo UI,任何人都可以提供如何根据级联下拉列表选择值更新 Kendo 网格数据源的解决方案。在 Kendo 演示中,我找到了级联下拉列表示例。 要求: 我有 3 个下拉列表,与 3
我必须动态添加许多 AJAX CascadingDropDown 控件集(具有不同的数据)。数据将从数据库中读取。可以this方法用于动态创建?有一个可以动态添加的 Web 用户控件会更好吗?我不清楚
问题:如何在回发后同时维护内容(来自查询)和两个下拉列表的选定值? 源代码:从这个link下载我的源代码(链接现在有效)。只需添加对 AjaxControlToolkit 的引用 用户操作:从每个下拉
您好,我在使用 CascadingDropDown 的选定值属性时遇到问题。 我有 3 个 asp 下拉控件,每个控件都带有 ajax CascadingDropDown。 我将数据绑定(bind)到
我想知道是否可以在 Ajax 工具包 CascadingDropDon 加载时创建 JavaScript/jQuery 事件。 场景: 我在第一个下拉菜单中选择项目 -> 第二个下拉菜单加载了 Aja
我想通过 javascript (jQuery) 在客户端复制级联下拉列表。 您可以在第一个框中看到要复制的级联下拉列表。它们将通过 AJAX 控件工具包的 CascadingDropDown 控件在
我刚刚从 AJAX 工具包中获得了一个 CascadingDropDown,它与 SelectedIndexChanged 一起使用以重定向到一个传递选定值的查询字符串的页面。我很开心! 但是,我只是
在代码隐藏中我可以这样做来选择一些东西: // Select item in first DropDownList myCascadingDropDown_1.SelectedValue = item
标记 Country Code Web 服务 (~/CountryData.asmx) [WebService(Namespace = "http://tempuri.org/"
如果是怎么办? 您是自己使用 jQuery 还是使用 Microsoft AJAX 工具包? 您是否创建了网络服务或调用了操作? 编辑:请注意,这个问题是在 Microsoft 宣布他们将把 jQue
我可以使用 jQuery 更改 CascadingDropDown 的值,但是触发导致目标控件的子下拉列表填充数据的事件永远不会发生: $("#").change(function() { var
我在 FormView 的 EditItemTemplate 中遇到问题。 当我在 InsertItemTemplate 中使用这样的代码时,一切正常: ' /> 但是当我在 EditItemT
我是一名优秀的程序员,十分优秀!