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

时间:2012-01-28 00:36:13

标签: c# asp.net linkbutton asplinkbutton

ASP声明:

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

我收到错误: 服务器标签格式不正确。

LinkBut​​ton decloration有什么问题? 提前谢谢。

2 个答案:

答案 0 :(得分:7)

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

我删除了OnClick

的属性值周围的无关引号

但是,OnClick需要委托,而不是网址。使用超链接或切换到事件处理程序。

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

This article显示了如何从链接按钮将参数传递给事件处理程序。您可以使用OnClick并设置OnCommand属性,而不是使用CommandArgument

标记

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

在Codebehind中

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

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

答案 1 :(得分:2)

你可以通过这种方式传递参数。

<asp:LinkButton ID="LinkButton1" runat="server" Text="edit item" 
PostBackUrl='AddItem.aspx?catid=<%#Eval("CollectionID")%>&catname=<%#Eval("CollectionName")%>' />