在ASP.NET中,如何从DataList中的特定控件检索数据

时间:2013-04-26 19:27:01

标签: c# asp.net

在DataList中,我从数据库中检索了注释。每个评论集都有自己的回复文本框以及提交回复的提交按钮。在按钮上,我有一个click事件以及commentID作为commandArgument,所以我可以在我的事件中检索注释id。我如何引用特定的注释框来检索文本。我的评论容器看起来像:

<div class="replyContainer">
    <asp:TextBox ID="replyBox" runat="server"></asp:TextBox>
    <asp:ImageButton ID="ImageButton1" runat="server"
        CommandArgument='<%# Eval("cID") %>'
        onclick="replyPostClick" />
</div> 

我的C#方法看起来像是:

protected void replyPostClick(object sender, EventArgs e)
{
    ImageButton btn = sender as ImageButton;
    CommentQueries.addComment(objectID, userID, btn.CommandArgument.ToString(), ?); 
}

问号将在我传递评论的地方。有某种方法可以某种方式检索相关文本框的文本吗?

1 个答案:

答案 0 :(得分:0)

您可以从已点击的ImageButton获取DataListItem

代码就像是;

ImageButton img = (ImageButton)sender;
DataListItem item = (DataListItem)img.NamingContainer;

// check that the item is not null
if (item != null)
{        

    //get the index of the Current ImageButton selected
    int itemIndex = item.ItemIndex;
    // find the control and value within the datalist using the itemIndex
    // I don't know the ID of your DataList, so I have just called it DataList1
    var replyText = ((TextBox)this.DataList1.Items[item.ItemIndex].FindControl("replyBox")).Text;

}

一旦你拥有item,你就可以