如何在Link Button Control中将参数传递给Eval()?

Mic*_*ael 4 c# asp.net linkbutton asplinkbutton

ASP声明:

 <asp:LinkButton ID="LinkButton1" runat="server" Text="edit item" onclick="'AddItem.aspx?catid=<%# Eval("CollectionID")%>'"></asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

我得到错误:服务器标签格式不正确.

LinkBut​​ton decloration有什么问题?先感谢您.

Tim*_*ora 7

<asp:LinkButton ID="LinkButton1" runat="server" Text="edit item" onclick='AddItem.aspx?catid=<%# Eval("CollectionID")%>' />
Run Code Online (Sandbox Code Playgroud)

我删除了属性值周围的无关引号OnClick.

但是,OnClick需要一个代表,而不是一个URL.使用超链接或切换到事件处理程序.

<a href='AddItem.aspx?catid=<%# Eval("CollectionID")%>'>edit item</a>
Run Code Online (Sandbox Code Playgroud)

本文介绍如何从链接按钮将参数传递给事件处理程序.OnClick您可以使用OnCommand和设置CommandArgument属性,而不是使用.

在标记

  <asp:LinkButton id="lnkEdit" 
       Text="Edit Item"
       CommandArgument='<%# Eval("CollectionID")%>'
       OnCommand="lnkEdit_Command" 
       runat="server"/>
Run Code Online (Sandbox Code Playgroud)

在Codebehind中

protected void lnkEdit_Command( object sender, CommandEventArgs e )
{
    // evaluate e.CommandArgument and do something with it
}
Run Code Online (Sandbox Code Playgroud)

我倾向于尽可能使用URL与命令事件处理程序,因为它消除了相对昂贵的回发.