c# - 中继器内的按钮不起作用

标签 c# asp.net repeater

我在中继器内部有两个按钮,我试图从后面的代码访问它们,但它们不起作用。我收到以下错误:

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

我不明白这个错误是什么意思,也不明白是从哪里来的。这是我的代码:

    <asp:Repeater ID="Repeater1" runat="server" 
        onitemdatabound="Repeater1_ItemDataBound1" 
        onitemcommand="Repeater1_ItemCommand" >
    <ItemTemplate>
    <table>
    <tr>


        <td><asp:Image ID="Image1" runat="server" /></td>
         <td><asp:Label ID="empnamelbl" runat="server" Text='<%# Eval("fullname") %>'></asp:Label></td>
        <td><asp:DropDownList ID="DropDownList1" runat="server">
        </asp:DropDownList></td>
        <td> <asp:Button ID="Button1" runat="server" Text="Present" CommandName="test1"  CommandArgument='<%# Eval("ID") %>' /> </td>
        <td><asp:Button ID="Button2" runat="server" Text="Absent"  CommandName="test2" CommandArgument='<%# Eval("ID") %>' /> </td>
        </tr>
        </table>
    </ItemTemplate>
    </asp:Repeater>

代码隐藏:

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "test1")
    {
        Response.Write("hi");
    }
}

最佳答案

我能够通过使用按钮中的 UseSubmitBehavior="false"属性来解决它。

这是它:

<asp:Button ID="Button2" UseSubmitBehavior="false" runat="server" Text="Absent"  CommandName="test2" CommandArgument='<%# Eval("ID") %>' />

关于c# - 中继器内的按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18171049/

相关文章:

c# - IL 使用 Reflection.Emit 调用带有 params object[] 参数的方法

c# - 仅在 Release 中 try catch 的更好方法?

c# - Asp.net C# Webform 表单生成器/生成器

c# - 为什么会触发此事件?

c# - 如何将对象作为可绑定(bind)属性传递给 Xamarin.Forms 自定义控件

c# - 如何强制 svcutil 使用 xml 序列化而不是运行时序列化

代码隐藏语法中的 javascript

asp.net - 将证书安全地存储在 Web 应用程序和 docker env 中

c# - 数据绑定(bind)中继器使中继器加载所有项目两次

c# - 动态创建嵌套转发器控件