子控件获取父控件ID1
现在我有一个checkbox在datalist里,想再点击checkBox时在后台获得datalist 的ID。该怎么弄?以checkbox chk =(checkbox)sender,为前提找
求大神指导
[解决办法]
CheckBox chk =(CheckBox )sender;
chk.Parent或者chk.Parent.Parent去找,
<%@ Page Language="C#" EnableViewState="true" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { System.Data.DataTable dataTable1 = new System.Data.DataTable(); dataTable1.Columns.Add(new System.Data.DataColumn("ID", typeof(System.Int32))); dataTable1.Columns.Add(new System.Data.DataColumn("Title", typeof(System.String))); dataTable1.Rows.Add(new Object[] { 1, 22, }); dataTable1.Rows.Add(new Object[] { 2, 2222 }); dataTable1.Rows.Add(new Object[] { 3, 22222 }); DataList1.DataSource = dataTable1; DataList1.DataBind(); } } protected void chk_CheckedChanged(object sender, EventArgs e) { CheckBox chk = sender as CheckBox; DataList d = chk.NamingContainer.Parent as DataList; Response.Write(d.ID); }</script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <asp:DataList ID="DataList1" runat="server"> <ItemTemplate> <asp:CheckBox ID="chk" runat="server" AutoPostBack="true" OnCheckedChanged="chk_CheckedChanged" /><%#Eval("Title")%> </ItemTemplate> </asp:DataList> </form></body></html>
[解决办法]
或者
protected void chk_CheckedChanged(object sender, EventArgs e){ CheckBox chk = sender as CheckBox; DataList d = chk.Parent.Parent as DataList; Response.Write(d.ID);}
[解决办法]
支持2楼!!!