2013-04-26 2 views
0

В DataList у меня есть комментарии, полученные из базы данных. Каждый набор комментариев имеет свое собственное текстовое поле ответа вместе с кнопкой отправки, чтобы отправить ответ. На кнопке у меня есть событие click вместе с commentID как commandArgument, поэтому я могу получить идентификатор комментария в своем событии. Как я могу ссылаться на конкретный блок комментариев, чтобы получить текст. Мой комментарий контейнер выглядит примерно так:В ASP.NET, как я могу получить данные из определенного элемента управления, который находится в DataList

<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(), ?); 
} 

Знак вопроса будет где я прохожу в комментарии. Есть ли способ получить текст соответствующего текстового поля?

ответ

0

Вы можете получить DataListItem из ImageButton, который был нажат.

Код был бы чем-то вроде;

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 вы можете можете

+0

Вы сударь только уполномочены безумец с новым найденным знанием спасибо. Вы даже решили проблему, которую я знал, что мне придется решать позже. Великолепный. –

+0

Всегда рад помочь. –

Смежные вопросы