我在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>
</ItemTemplate>
</asp:DataList>
这将根据从webService传递的字符串值创建checkBoxes和textBoxes。
当用户单击profileTextBox
并使用字符串值填充页面上的DataList时,如何获取CheckBoxPN
文本字符串值?
答案 0 :(得分:2)
您可以使用CheckBox
的{{3}}事件并将其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-dataatabound控件(Repeater
,GridView
等。)