【问题标题】:asp:Repeater Item command doesn't fire in IE7 (compatibility mode)asp:Repeater Item 命令在 IE7 中不触发(兼容模式)
【发布时间】:2012-03-14 17:45:07
【问题描述】:

我在一个页面中使用 asp:repeater,它有 OnItemCommand。但是在 IE7(兼容模式)中,当我单击中继器中的按钮时,它不起作用并显示此错误:

回发或回调参数无效。使用配置或页面启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法注册回发或回调数据以进行验证。

这是代码:

<asp:Repeater ID="rptExternalLinks" runat="server" OnItemCommand="rptExternalLinks_ItemCommand1">
   <ItemTemplate>
      <asp:Button ID="lbtnDelet" CssClass="simaUI-icon simaUI-icon-closethick" runat="server" CommandName="DeleteItem" />
   </ItemTemplate>
</asp:Repeater>

它适用于其他浏览器,如 IE9、FF、Chrome 和...但它在 IE 兼容模式下显示错误。

【问题讨论】:

    标签: asp.net asprepeater


    【解决方案1】:

    这真是奇怪的行为。不幸的是,我无法重现给定语法的错误。

    如果您在每次回发时都重新绑定转发器,肯定会出错,因此您必须确保仅在页面未回发时才绑定。

    if (!Page.IsPostBack)
    {
        //your code
    }
    

    另外,您是否使用任何元标记进行内容缓存(客户端)?我也会清除你浏览器的缓存。

    如果您有任何更具体的细节,请告诉我。

    希望对你有帮助。

    【讨论】:

    • 感谢塞巴斯蒂安,这是因为回发,我在页面加载中创建了一个列表来测试页面,然后将转发器数据源设置为该列表,我将创建列表放在“”如果(!Page.IsPostBack){}"" 并且有效。但是钢铁它并没有解决我为什么它在其他浏览器中工作......
    • 这很奇怪,我必须找出答案。
    猜你喜欢
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2014-05-08
    • 1970-01-01
    • 2011-05-17
    • 2010-11-15
    • 1970-01-01
    相关资源
    最近更新 更多