1

我有DataList控制权:

<asp:DataList ID="DataList1" runat="server" RepeatColumns="1" OnItemDataBound="dlRequestLayout_ItemDataBound" >
    <ItemTemplate>
        <asp:Label ID="lbl" Width="150px" runat="server" Text='<%# Eval("LabelText") %>' />
    </ItemTemplate>
</asp:DataList>

我在 on 添加控件ItemDataBound

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            WebControl control;
            if (_textbox)
            {
                control = new TextBox();
            }
            e.Item.Controls.Add(control);
        }
    }

PostBack我正在搜索TextBox,但DataList只能找到标签。

是因为生命周期吗?如何获得特定文本框的值?

谢谢

4

1 回答 1

2

是因为生命周期吗?

是的 - 基本上您需要在回发时重新添加控件,以便后续方法/处理程序可以使用它。

另一种方法是将此文本框作为网格的一部分并使用一些 Javascript 显示/隐藏文本框 - 这样它就可以在回发时使用,因为它不是动态添加的。

于 2013-07-10T13:07:48.270 回答