【问题标题】:Reading textareas in datalist within itemcommand在 itemcommand 中读取 datalist 中的文本区域
【发布时间】:2011-07-18 21:49:21
【问题描述】:

我有一个 DataList,每个项目内部都有一个 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 视图中实际上有多个 DataList,但我不确定这是否与答案相关。

谢谢

【问题讨论】:

    标签: c# .net asp.net datalist


    【解决方案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 
        }
    }
    

    【讨论】:

    • 非常感谢。这可以完美地工作,而无需我对我的 asp 标记进行任何更改。我不知道您可以通过这种方式获取包含 ImageButton 的 DataListItem。这非常有帮助。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多