Комментарии DataList (внешний) и ответы DataList (внутренний).

В то время как во Внутреннем DataList есть LinkButton, который получает текст от TextBox.

Как я могу получить доступ к Add событию этого LinkButton?

.aspx код

<asp:DataList ID="dlComments" runat="server">
    <asp:DataList ID="dlReplies" runat="server">
        <asp:TextBox ID="txtReply" TextMode="MultiLine" Rows="3" Width="100%" runat="server"></asp:TextBox>
        <asp:LinkButton ID="lbEdit" CommandName="Add" runat="server">Edit</asp:LinkButton>
    </asp:DataList>
</asp:DataList>

enter image description here

1
5377037 28 Май 2017 в 08:08

2 ответа

Лучший ответ

Вы можете добавить OnItemCommand во вложенный DataList.

<asp:DataList ID="dlReplies" runat="server" OnItemCommand="dlReplies_ItemCommand">

А потом в коде позади

protected void dlReplies_ItemCommand(object source, DataListCommandEventArgs e)
{
    //check for the correct commandname
    if (e.CommandName == "Add")
    {
        //use findcontrol to find the textbox and cast it back to one
        TextBox tb = e.Item.FindControl("txtReply") as TextBox;

        Label1.Text = tb.Text;
    }
}
3
VDWWD 12 Июн 2017 в 10:29

Добавьте commandName="click" на кнопку ссылки.

 private void DataList1_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e) {
        if ((e.Item.ItemType == ListItemType.AlternatingItem) 
                    || (e.Item.ItemType == ListItemType.Item)) {
            DataList dtl2 = (DataList)(e.Item.FindControl("dlReplies"));
            dtl2.ItemCommand += new System.EventHandler(this.dtl2_ItemCommand);
        }
    }

    protected void dtl2_ItemCommand(object sender, System.Web.UI.WebControls.DataListCommandEventArgs e) {
        if (e.CommandName == "click") {
            // 'do what you want here
        }
    }
-1
Navoneel Talukdar 28 Май 2017 в 05:25