3

我在 asp.net 中创建了一个 DataList -

<asp:DataList runat="server" ID="pTextBox">

<ItemTemplate>

<asp:CheckBox ID="CheckBoxPN" runat="server"  Checked='false' />
<asp:TextBox ID="profileTextBox" runat="server" Text='<%# Container.DataItem.ToString() %>'></asp:TextBox>&nbsp;


</ItemTemplate>
</asp:DataList>

这会根据从 webService 传递的字符串值创建复选框和文本框。

profileTextBox当用户单击CheckBoxPN并使用字符串值在页面上的 DataList 之外填充另一个文本框时,如何获取文本字符串值?

4

1 回答 1

2

您可以使用 the 的CheckedChanged事件CheckBox并将其NamingContainer转换为DataListItem,您只需要使用它FindControl来查找不同的服务器控件:

protected void CheckBoxPN_CheckedChanged(Object sender, EventArgs e)
{
    CheckBox chk = (CheckBox) sender;
    DataListItem item = (DataListItem) chk.NamingContainer;
    TextBox txt = (TextBox) item.FindControl("profileTextBox");
    this.OtherTextBoxOnPage.Text = txt.Text; // here we are
}

顺便说一句,这种方法适用于任何 Web 数据绑定控件(Repeater、、GridView等)

于 2013-01-16T16:04:57.530 回答