如何在转发器控制中使用按钮?

时间:2011-03-15 09:50:39

标签: c# asp.net repeater

我正在使用带有c#的asp.net 3.5。我想在转发器控件中调用按钮点击事件。

<asp:Repeater ID="rptFriendsList"
    runat="server" 
    onitemcommand="rptFriendsList_ItemCommand">
    <ItemTemplate> 
        <asp:ImageButton ID="btnSave"
                         runat="server" 
                         ImageUrl="~/Contents/Images/save_button.png"
                         CommandName="Schedule"
                         UseSubmitBehavior="False"  />
    </ItemTemplate>
</asp:Repeater>

但是当我点击按钮时会发出错误

  

“无效的回发或回调   论点。事件验证已启用   用在   配置或&lt;%@ Page   EnableEventValidation =“true”%&gt;在一个   页。为安全起见,这个   功能验证参数   回发或回调事件源自   从服务器控制那个   最初渲染它们。如果数据   是有效的和预期的,使用   ClientScriptManager.RegisterForEventValidation   注册方法   回发或回调数据   验证“。

我的目的是在按钮点击中执行一些代码,这些代码放在转发器内。请帮我解决这个问题。提前谢谢。

7 个答案:

答案 0 :(得分:5)

UseSubmitBehavior =“False”您使用的此属性与图像按钮不存在,您是否已经覆盖了图像按钮类并添加了此属性。

答案 1 :(得分:2)

当您在OnLoad事件中为您的转发器分配数据源和数据时,也会发生这种情况,而不是OnInit

答案 2 :(得分:1)

你不能使用按钮,因为按钮会在点击时创建回发,而且还会调用转发器的itemcommand!

但是,如果你想使用asp:button而不是asp:linkbutton,你必须将button的UseSubmitBehavior属性设置为false。它的意思是,按钮不要回发。

<asp:Button ID="btnAccept" runat="server" Text="Accept All" CssClass="vb-default vb-green vb-txt-light" CommandName="Accept" CommandArgument='<%# Eval("UserID") %>' UseSubmitBehavior="false" />

答案 3 :(得分:1)

@Override
public void onAdLoaded() {
    super.onAdLoaded();
    bannerView.setVisibility(View.VISIBLE);
}

答案 4 :(得分:0)

我使用过这个波纹管代码并运行正常 在.aspx页面中使用此波纹管代码

<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
    <HeaderTemplate>
        <table>
            <tr>
                <th>
                    Edit
                </th>
            </tr>
        </table>
    </HeaderTemplate>
    <ItemTemplate>
        <table>
            <tr>
                <td align="center">
                    <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Edit">Edit</asp:LinkButton>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:Repeater>

在.cs中使用此功能使事件Repeater1_ItemCommand

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{

    switch (e.CommandName)
    {
        case "Edit":
            // Do some stuff when the Edit button is clicked.

            break;

        // Other commands here.

        default:
            break;
    }

}

答案 5 :(得分:-1)

设置页面EnableEventValidation =“false”。

答案 6 :(得分:-2)

如果您要添加项目服务器端,请尝试为每个ImageButton

分配唯一ID