如何取出GridView中的CheckBoxList控件所选择的值。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何取出GridView中的CheckBoxList控件所选择的值。相关的知识,希望对你有一定的参考价值。
如何取出GridView中的CheckBoxList控件所选择的值。
能实现同样的功能<asp:GridView 中用到的复选框,多选,全选,批量删除数据 //出自大志
代码实例:
<script type="text/javascript">
function GetAllCheckBox(parentItem)
var items = document.getElementsByTagName("input");
for (i = 0; i < items.length; i++)
if (parentItem.checked)
if (items[i].type == "checkbox")
items[i].checked = true;
else
if (items[i].type == "checkbox")
items[i].checked = false;
</script>
<asp:GridView ID="gvwColumnList" runat="server" AutoGenerateColumns="false" DataKeyNames="id" OnRowDeleting="gvwColumnListRowDeleting">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<input type="checkbox" id="selectall" onclick="GetAllCheckBox(this);" />
</HeaderTemplate>
<ItemTemplate>
<div align="center"><input type="checkbox" runat="server" id="cbxContact" /></div>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="ID" />
<asp:BoundField DataField="ColumnName" HeaderText="栏目名" />
<asp:BoundField DataField="WebUrl" HeaderText="WebUrl" />
<asp:BoundField DataField="State" HeaderText="状态" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="true"/>
</Columns>
</asp:GridView>
//获取批量删除的Id(Ids) 这里就是获取当前行的ID了
public string gvwCustomListDelByIds()
System.Text.StringBuilder columnIds = new System.Text.StringBuilder();
for (int i = 0; i <= gvwColumnList.Rows.Count - 1; i++)
System.Web.UI.htmlControls.HtmlInputCheckBox cbx = (System.Web.UI.HtmlControls.HtmlInputCheckBox)gvwColumnList.Rows[i].FindControl("cbxContact");
if (cbx.Checked)
columnIds.Append(gvwColumnList.DataKeys[i].Value.ToString() + ",");
return columnIds.ToString().Trim(',');
//确认批量删除
protected void btnDel_Click(object sender, EventArgs e)
if (columnbll.ColumnDel(gvwCustomListDelByIds()))
Response.Write("<script>alert('删除成功')</script>");
else
Response.Write("<script>alert('删除失败')</script>");
bind();
注意我用的是
<input type="checkbox" id="selectall" onclick="GetAllCheckBox(this);" />
而不是CheckBoxList。 这样效率比较的高。 参考技术A CheckBoxList是一组可勾的控件,gridview是用表格形式显示的,CheckBoxList怎么放在gridview里面?
webform复合控件
复合控件是十二个表单元素里的选择类衍生出来的。
一、
<asp:CheckBox ID="CheckBox1" runat="server" />
CheckBox:复选框。
属性:Text 文字;
取值:CheckBox1.Checked,取出来是bool类型。
服务器解析后会变成checkbox类型的input,Text的文本会自动加到label里,方便点击。
二、
<asp:CheckBoxList ID="CheckBoxList1" runat="server"></asp:CheckBoxList>
CheckBoxList:复选框列表,需要大量数据的时候比复选框好用的多,使用前需要绑定数据。
属性:RepeatColumns每列/行显示的的个数;
RepeatDirection列表排序方向(Vertical纵向/Horizontal横向);
赋值
CheckBoxList1.DataSource = ulist; CheckBoxList1.DataTextField = "NickName"; CheckBoxList1.DataValueField = "Ucode"; CheckBoxList1.DataBind();
默认选中项
foreach (Users u in ulist) { ListItem li = new ListItem(u.NickName, u.UserName); if (u.UserName == "xiaohua" || u.UserName == "wangwu") li.Selected = true; CheckBoxList1.Items.Add(li); }
取值:获取单选中项CheckBoxList1.SelectedItem.Value/Text;
如果是空的话会报错,需要先进行判断。获取只获取索引值最小的选项。
获取多选中项。遍历所有项,如果checked是true,取出来。
if (CheckBoxList1.SelectedIndex != -1) { string s = ""; foreach (ListItem li in CheckBoxList1.Items) { if (li.Selected) s += li.Value + ","; } Label1.Text = s; }
服务器解析后会变成table表格里放着checkbox类型的input。
三、
<asp:radiobutton runat="server"></asp:radiobutton>
radiobutton:单选按钮。
属性:Text 文字;
取值:CheckBox1.Checked,取出来是bool类型。
服务器解析后会变成Radio类型的input,Text的文本会自动加到label里,方便点击。
四、
<asp:RadioButtonList ID="RadioButtonList1" runat="server"></asp:RadioButtonList>
RadioButtonList:单选框列表。
属性:RepeatColumns每列/行显示的的个数;
RepeatDirection列表排序方向(Vertical纵向/Horizontal横向);
赋值
RadioButtonList1.DataSource = ulist; RadioButtonList1.DataTextField = "NickName"; RadioButtonList1.DataValueField = "Ucode"; RadioButtonList1.DataBind();
取值:RadioButtonList1.SelectedItem.Value/Text;
服务器解析后会变成Radio类型的input,Text的文本会自动加到label里,方便点击。
五、
<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
DropDownList:下拉列表
属性:AppDataBoundItems将数据绑定项追加到列表项里;AutoPostBack事件自动回发;
设置自动回发事件:
DropDownList1.SelectedIndexChanged += DropDownList1_SelectedIndexChanged; private void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { }
赋值
DropDownList1.DataSource = ulist; DropDownList1.DataTextField = "NickName"; DropDownList1.DataValueField = "Ucode"; DropDownList1.DataBind(); DropDownList1.Add(new ListItem("==请选择==","-1"))
取值:DropDownList1.SelectedItem.Value/Text;
服务器解析后会加变成select列表。
以上是关于如何取出GridView中的CheckBoxList控件所选择的值。的主要内容,如果未能解决你的问题,请参考以下文章
在SQLserver 2000中的表中取出一列,显示在一个gridview中,当表中该列数值为1时显示一张图片,