在itemcommand中读取datalist中的textareas

时间:2011-07-18 13:35:52

标签: c# .net asp.net datalist

我有一个DataList,每个项目内都有一个需要保存相关textarea内容的ImageButton。我通常会使用CommandArgument标记传递参数,但描述中的文本很长,我不想将其写入命令参数中以显示所有项目。相反,我如何找到相关文本区域的ID,以便保存用户更改/输入的文本?

我尝试将'this'传递给命令参数,但我认为它不起作用,因为它只传递按钮的对象而不是整个项目。

我意识到这似乎是一个基本问题,但我搜索了一个多小时。非常感谢您的帮助。

<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"/>

在多个Accordion视图中实际存在多个DataLists,但我不确定这是否与答案相关。

由于

1 个答案:

答案 0 :(得分:2)

你可以这样做......

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 
    }
}