如何取出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时显示一张图片,

webform复合控件

GridLayout和GridView的区别

如何删除GridView内LinearLayout中的空白?

android如何删除gridview中的某个item

如何取得gridview中选中行中的某一字段