c#编程中在Gridview添加一列checkbox(复选框)列,案例如下(要实现的效果,如下图所示):
<asp:GridView ID="GridView1" runat="server" ><Columns>
<asp:BoundField DataField="vote_id" HeaderText="编号"/>
<asp:BoundField DataField="vote_name" HeaderText="名称"/>
<asp:TemplateField HeaderText="选择">
<ItemTemplate>
<asp:CheckBox id="cbxId" runat="Server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Gridview里的模版列<asp:TemplateField HeaderText="Select">
<HeaderTemplate>
<asp:CheckBox ID="ckbAll" runat="server" onclick="javascript:SelectAllCheckboxes(this)" />
</HeaderTemplate>
<ItemStyle Width="100px" HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox ID="ckbItem" runat="server" />
</ItemTemplate>
</asp:TemplateField>
上面调用的一个js!有一定的局限!只能选中!不能反选 !
想反选的话你可以在cs里给第一个checkbox加事件!
cs代码:
foreach (GridViewRow sgvRow in this.gvAdsType.Rows)
{
CheckBox cbo = (CheckBox)sgvRow.FindControl("ckbItem")
CRED_AdsEntity objEntity = new CRED_AdsEntity()
if (cbo.Checked)
{
objEntity.sAdID = this.gvAdsType.DataKeys[sgvRow.RowIndex][0].ToString()
delList.Add(objEntity)
}
}
这个是循环谁被选中的!
绑定gridview时一定要把他的datakey绑上!
加分吧!come on!!!
这个需要将checkbox添加到GridView的模板列中,然后用下面代码:
for (int i = 0 i < GridView1.Rows.Count i++){
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1")
if (cbox.Checked == true)
{
//要做的事
}
}
上面从i就能知道是第几行,如果要获取表中id,还需要模板列中隐藏id,才好获取。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)