2009-04-15 8 views
1

コードの背後にあるメソッドを呼び出すリンクボタンがあります。このメソッドは、container.dataitemにスティックする必要のあるパラメータをとります。私は他のコントロールで使用するので、container.dataitem構文が正しいことを知っています。私が知らないのは、それをメソッドのパラメータとしてどのように使用するかです。ボタンをクリックすると、container.dataitemを使用してメソッドを呼び出す必要があります。このメソッドは「AddFriend(string username)」と呼ばれます。以下はコードです。ありがとうございました!Asp.Net LinkBut​​ton Onclick = method(container.dataitem)、構文の助けが必要

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

答えて

0

ButtonFieldを使用し、RowCommandでクリックを処理する必要があります。 MSDN docs

<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")); 
    } 
    } 
+0

のLinkBut​​tonはデータリストです。 – user84786

0

私は同じことがデータリストに適用されると思うが、私は後ろの私のコードでリピーターのためにこれを使用してきました。 Maybyは、Repeaterの代わりに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]); 
    } 
} 
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 
関連する問題