datagrid里如何加入checkbox?
我想在datagrid里每一行都加一个checkbox,该如何实现呢?
请各位大虾帮帮忙,我要回家过年!555555555
问题点数:20、回复次数:4Top
1 楼Cnapollo(旁痞)回复于 2006-01-26 14:02:32 得分 20
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="cbx1" Runat="server" Checked="True" Text="aaa"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
Top
2 楼cctaiyang(带头大哥_OPPA)回复于 2006-01-26 14:03:46 得分 0
用模板列Top
3 楼sunnyvivi()回复于 2006-01-26 14:06:35 得分 0
恩,谢谢,我试试看哦。Top
4 楼jiaojia_qf(艺飞)回复于 2006-01-26 14:24:00 得分 0
给你一个我写的实例你看看吧
1、首先在DataGrid中添加一个模版列,如下:
<asp:datagrid id="UserListDataGrid" runat="server" Width="100%" Height="20px" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<HeaderStyle Width="12%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<HeaderTemplate>
<asp:CheckBox id="SelectAllCheckBox" runat="server" Text="全选" AutoPostBack="True" Font-Bold="True"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="SelectedCheckBox" runat="server" Font-Size="Smaller"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
2、添加DataGrid的ItemCreated()事件,如下:
if(e.Item.ItemType == ListItemType.Header)
{
CheckBox chk = (CheckBox)e.Item.FindControl("SelectAllCheckBox");
// 给页眉上的CheckBox添加出发事件
chk.CheckedChanged +=new EventHandler(chk_CheckedChanged);
}
3、添加如下过程
(1)、
private void chk_CheckedChanged(object sender, System.EventArgs e)
{
CheckBox chk = this.GetHeaderCheckBox(this.UserListDataGrid);
foreach (DataGridItem i in this.UserListDataGrid.Items)
{
CheckBox inChk = (CheckBox)i.FindControl("SelectedCheckBox");
inChk.Checked = chk.Checked;
}
}
(2)、
// 得到指定DataGrid的题头的CheckBox对象
private CheckBox GetHeaderCheckBox(DataGrid grd)
{
CheckBox chk = null;
foreach (DataGridItem i in grd.Controls[0].Controls)
{
if(i.ItemType == ListItemType.Header)
{
chk = (CheckBox)i.FindControl("SelectAllCheckBox");
break;
}
}
return chk;
}
4、添加DataGrid的ItemDataBound()事件,初始化CheckBox
if(e.Item.ItemType == ListItemType.Item)
{
CheckBox ck = (CheckBox)e.Item.Cells[0].FindControl("SelectedCheckBox");
ck.Checked = false;
}
OK了,其它的东西自己可以搞定了。要得到DataGrid中某一行中的CheckBox使用下面的方法:
CheckBox chk = (CheckBox)UserListDataGrid.Items[i].Cells[0].FindControl("SelectedCheckBox");Top




