选择Repeater控件内的DropDownList项目

我有一个包含几个项目的中继器和它们之间有一个DropDownList和一个按钮。

这里的目标是将项目从DDL与所选转发器的行相关联。

ASPX代码:

<asp:Repeater ID="sharedPlansList" runat="server" onitemdatabound="sharedPlansList_ItemDataBound" onitemcommand="sharedPlansList_ItemCommand"> <ItemTemplate> <div> <h1>&middot; <%# Eval("ProductName") %></h1> <div> Associer le domaine : <asp:DropDownList runat="server" ID="domainList" /> <asp:Button ID="associateDomaine" Text="Associer" runat="server" CommandArgument='<%# Container.DataItem %>' /> </div> <div> Domaines : <asp:BulletedList runat="server" ID="sharedPlanDomains" /> </div> </div> </ItemTemplate> </asp:Repeater>

问题:

当我按一下按钮我有一个无效的回发或回调异常(无效的回发或回调参数。事件验证使用配置中启用时,或<%@页EnableEventValidation =“真正的”%>在页面中。为了安全起见,此功能验证参数回发或回调事件的服务器控件最初呈现这些。如果数据有效并且是预期,使用ClientScriptManager.RegisterForEventValidation方法来注册回发或回调数据以进行验证。)。 但一切似乎没有什么真正的异国情调的真正标准。 我不被JavaScript或者添加任何东西或控制。

我所看到的解决方案,在那里你可以把<pages enableEventValidation="false" />web.config ,但我不知道这是一个很好的解决方案,因为我要确保保持asp.net内置的安全模型。

是否有任何变通存在吗?

--------------解决方案-------------

我不能肯定没有测试代码有点(我没有时间做正确的第二个),但你可以验证动态CommandArgument你分配给你的按钮是罪魁祸首? 如果你把它拿出来,并错误不断收到抛出?

如果是这样的话,你可以尝试以处理每一行OnItemDataBound处理和呼叫

ClientScript.RegisterForEventValidation("associateDomaine", -->CommandArgHere<--);

最好的解决方法是将用自己的替代的DropDownList DropDownList中。 创建的DropDownList的子类,并使用ASPX页面该列表。 我觉得你的DropDownList的内容被更改的客户端(可能是,通过Javascript?)。

分类:C# 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.553 (s). 10 q(s)