<asp:datalist id="DistList" runat="server" >
<ItemTemplate>
<asp:datalist id="BuildList" runat="server" >
<ItemTemplate>
<asp:CheckBox ID="chkBld" AutoPostBack="True" Runat="server" Checked="True" EnableViewState="true"></asp:CheckBox>
</ItemTemplate>
</asp:datalist>
</ItemTemplate>
</asp:DataList>
private void DistList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
System.Web.UI.WebControls.DataList BuildList;
BuildList = (DataList)e.Item.FindControl("BuildList");
BuildList.ItemCreated += new DataListItemEventHandler(BuildList_ItemCreated);
//...
} private void BuildList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
CheckBox chkBld = (CheckBox)e.Item.FindControl("chkBld");
chkBld.CheckedChanged += new System.EventHandler(this.chkBld_CheckedChanged);
}} private void chkBld_CheckedChanged(object sender, System.EventArgs e)
{
CheckBox chb = (CheckBox)sender;
DataTable dt = new DataTable(); if( !chb.Checked )
{}
else{}
//...
}
动态生成 第二层datalist ,在第二层datalist里动态生成checkbox。
为什么chkBld_CheckedChanged 无法触发 ? checkbox AutoPostBack="True"
是viewstate的问题?如果只有一层datalist的时候,checkbox的 viewstate能很好地得到,CheckedChanged也能很好地触发谢谢!100分
<ItemTemplate>
<asp:datalist id="BuildList" runat="server" >
<ItemTemplate>
<asp:CheckBox ID="chkBld" AutoPostBack="True" Runat="server" Checked="True" EnableViewState="true"></asp:CheckBox>
</ItemTemplate>
</asp:datalist>
</ItemTemplate>
</asp:DataList>
private void DistList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
System.Web.UI.WebControls.DataList BuildList;
BuildList = (DataList)e.Item.FindControl("BuildList");
BuildList.ItemCreated += new DataListItemEventHandler(BuildList_ItemCreated);
//...
} private void BuildList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
CheckBox chkBld = (CheckBox)e.Item.FindControl("chkBld");
chkBld.CheckedChanged += new System.EventHandler(this.chkBld_CheckedChanged);
}} private void chkBld_CheckedChanged(object sender, System.EventArgs e)
{
CheckBox chb = (CheckBox)sender;
DataTable dt = new DataTable(); if( !chb.Checked )
{}
else{}
//...
}
动态生成 第二层datalist ,在第二层datalist里动态生成checkbox。
为什么chkBld_CheckedChanged 无法触发 ? checkbox AutoPostBack="True"
是viewstate的问题?如果只有一层datalist的时候,checkbox的 viewstate能很好地得到,CheckedChanged也能很好地触发谢谢!100分
解决方案 »
- ASP.NET初学者困惑
- 现在网上的BBS怎么都没有提供会员接口的呀,请问大虾有没有BBS,提供会员和积分接口
- 询问关于网站运行权限问题
- 请问作asp.net设计,都用什么工具呀,用visio吗?还是uml,如果uml设计的只是代码,没有界面呀
- 如何将datatable中的数据写入数据库中的表A呢?在线等,解决就给分.
- 什么原因????Session_Start中不能有代码,有了就会在Session没失效时执行Session_End
- (100分大放送)活动目录为什么不能和.NET共存?
- Asp.net连接oracle的程序,经常出现close_wait状态
- datagrid分页的问题,请大家能帮忙看一下,谢谢。
- 谁有最新的IP对应表?
- ====实在是不会,求一简单sql语句
- 高分(100)寻求帮助(^_^):问一个从Web打开本地可执行文件的问题~~高手请进,留下点宝贵经验~
没对ItemDataBound ,ItemDataCreated做研究,不是很清楚,所以犯了错误。
知道怎么回事了
谢谢大家
BuildList_ItemDataBound -〉BuildList_ItemDataCreated就行了。
<ItemTemplate>
<asp:datalist id="BuildList" runat="server" >
<ItemTemplate>
<asp:CheckBox ID="chkBld" AutoPostBack="True" Runat="server" Checked="True" EnableViewState="true"></asp:CheckBox>
</ItemTemplate>
</asp:datalist>
</ItemTemplate>
</asp:DataList>
private void DistList_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
System.Web.UI.WebControls.DataList BuildList;
BuildList = (DataList)e.Item.FindControl("BuildList");
BuildList.ItemCreated += new DataListItemEventHandler(BuildList_ItemCreated);
//...
}
private void BuildList_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ¦ ¦ e.Item.ItemType == ListItemType.AlternatingItem)
{
CheckBox chkBld = (CheckBox)e.Item.FindControl("chkBld");
chkBld.CheckedChanged += new System.EventHandler(this.chkBld_CheckedChanged);
}
}
private void chkBld_CheckedChanged(object sender, System.EventArgs e)
{
CheckBox chb = (CheckBox)sender;
DataTable dt = new DataTable();
if( !chb.Checked )
{}
else{}
//...
} 这样ok了