5

グリッド ビューの行コマンドでコントロールを見つけるにはどうすればよいですか?

4

11 に答える 11

24

実際には GridViewCommandEventArgs に行がないため、コマンド ソースの名前付けコンテナーから行を取得する必要があります。

GridViewRow row = (GridViewRow)(((Control)e.CommandSource).NamingContainer);

その後、使用できるようになります

TextBox myTextBox = row.FindControl("MyTextBoxId") as TextBox;

お役に立てれば!

于 2013-02-07T10:40:54.783 に答える
1
GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);

Label lblProdId = (Label)row.FindControl(“lblproductId”);
于 2015-02-11T12:14:21.570 に答える
0

「CommandName」を使用して、コントロールで「CommandArgument」を使用できます。ここで 2 つの引数:

<asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" CommandArgument='<%# Container.DataItemIndex + ";" + Eval("idinterlocuteur") %>'>

次に、コード ビハインドで引数を取得できます。

string[] arg = e.CommandArgument.ToString().Split(';');
int index = Convert.ToInt16(arg[0]);
string idinterlocuteur = arg[1];

そして今、あなたのコントロールを見つけるための引数:

CheckBox Check1 = GridView1.Rows[index].FindControl("MyCheckboxinrow") as CheckBox;
于 2015-06-04T14:45:08.583 に答える
0

行内のコントロールを見つけたい場合は、コマンドを使用します

controlname controlId=(controlname)e.FindControl("controlId"); 

たとえば、ID lblのラベルを見つけたい場合は、..

Label lbl = (Label)e.Row.FindControl("lbl");
于 2013-02-07T11:04:32.123 に答える