2011-07-18 1 views
0

私はDataListを持っていて、各項目の中には関連するテキストエリアの内容を保存する必要があるImageButtonがあります。私は通常、CommandArgumentタグを使用してパラメータを渡しますが、説明内のテキストは非常に長く、表示されているすべての項目のコマンド引数に書き出すことはしたくありません。代わりに、関連するテキストエリアのIDをどのようにして見つけることができるので、ユーザーが変更/入力するテキストを保存できますか?itemコマンド内のデータリスト内のテキストエリアを読む

私はコマンドの引数に 'this'を渡そうとしましたが、アイテム全体ではなくボタンのオブジェクトを渡すだけであるとは思いません。

これは基本的な質問のようですが、私は1時間以上探しました。あなたの助けは非常に高く評価されます。

<asp:ImageButton ID="saveDesc" runat="server" AlternateText="Save Image Description" BorderStyle="None" ImageUrl="..\..\images\save.png" CommandArgument='this' CommandName="SaveDescription" /> 
<asp:TextBox ID="description" runat="server" Text='<%#Eval("description")%>' style="font-weight:bold; width:100%" TextMode="MultiLine" Height="50px"/> 

複数のアコーディオンビューの中に実際に複数のデータリストがありますが、これが回答に関連するかどうかはわかりません。

おかげ

答えて

1

あなたはそんなに...のような

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) 
{ 
if (e.CommandName == "SaveDescription") 
    { 
    DataListItem item = ((DataListItem)((ImageButton)e.CommandSource).NamingContainer); 
    TextBox description = (TextBox)item.FindControl("description"); 
    description.Text // return your text 
    } 
} 
+0

感謝を行うことができます。これは、私のASPマークアップに何も変更を加えることなく完璧に動作します。私はこの方法でImageButtonを含むDataListItemを取得できることに気づいていませんでした。これは非常に役に立ちます。再度、感謝します! – Dave

関連する問題