1

我有一个链接按钮,我想在后面的代码中调用一个方法。该方法需要一个参数,我需要将其粘贴在 container.dataitem 中。我知道 container.dataitem 语法是正确的,因为我在其他控件中使用它。我不知道如何使用它作为方法的参数。单击按钮后,应使用 container.dataitem 调用该方法。该方法称为'AddFriend(字符串用户名)' 下面是代码。谢谢!

<asp:LinkButton ID="lbAddFriend" runat="server" OnClick='<%# "AddFriend(" +((System.Data.DataRowView)Container.DataItem)["UserName"]+ ")" %>' Text="AddFriend"></asp:LinkButton></td>
4

3 回答 3

0

您需要使用 ButtonField 并处理 RowCommand 中的单击。检查MSDN 文档

 <asp:buttonfield buttontype="Link" 
                  commandname="Add" 
                  text="Add"/>

在后面的代码中......

  void ContactsGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    if(e.CommandName=="Add")
    {
         AddFriend(DataBinder.Eval(Container.DataItem, "Price""UserName"));
    }
  }
于 2009-04-15T13:06:03.367 回答
0

我认为同样的事情也适用于数据列表,但我一直在后面的代码中使用它作为中继器。Mayby 使用 DataListItemEventArgs 和 DataListCommandEventArgs 代替中继器。

protected void rptUserInfo_Data(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        UserInfo oUserInfo = e.Item.DataItem as UserInfo;

        LinkButton hlUser = e.Item.FindControl("hlUser") as LinkButton;
        hlUser.Text = oUserInfo.Name;
        hlUser.CommandArgument = oUserInfo.UserID + ";" + oUserInfo.uName;
        hlUser.CommandName = "User";
    }
}
public void UserArtItem_Command(Object sende, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "User")
    {
        string command = e.CommandArgument.ToString();
        string[] split = command.Split(new Char[] { ';' });

        Session["ArtUserId"] = split[0];
        Session["ArtUserName"] = split[1];
        Response.Redirect("~/Author/" + split[1]);
    }
}
于 2009-04-15T13:38:56.750 回答
0

也许这个?

<asp:LinkButton ID="lbAddFriend" runat="server"
 Text="Add Friend" OnCommand="AddFriend"
 CommandArgument='<%# Eval("UserName").ToString() %>' />

然后在代码中:

Protected Sub AddFriend(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs)
    Dim UserName As String = e.CommandArgument
    'Rest of code
End Sub
于 2009-04-15T15:47:27.177 回答