如何获取CheckBoxList当前选项的值(CheckBoxList允许多选)

songjinxi123 2008-05-25 03:47:56
如何获取CheckBoxList当前选项的值(CheckBoxList允许多选)
在CheckBoxList多选的时候,SelectedIndex属性为最低序号索引,SelectedItem属性为索引最小的选定项 ,但是我想在SelectedIndexChanged事件中,获得当前点选项的值,请问如果获取? 谢谢
...全文
6908 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
heromaxc 2011-09-15
  • 打赏
  • 举报
回复
http://www.lmwlove.com/ac/ID542
kelin418 2011-05-17
  • 打赏
  • 举报
回复
学习了
小丫头 2011-01-04
  • 打赏
  • 举报
回复
借鉴了
小丫头 2010-12-31
  • 打赏
  • 举报
回复
学习了
sandy17862 2010-11-26
  • 打赏
  • 举报
回复
借鉴了
wujiuo 2010-08-13
  • 打赏
  • 举报
回复
借鉴了
qingtao_yuan 2010-01-15
  • 打赏
  • 举报
回复
这里的答案很不错!
hecture 2009-12-13
  • 打赏
  • 举报
回复
谢谢。学习了
moqisheng 2009-05-18
  • 打赏
  • 举报
回复
想把那些选中的值写入数据库怎么写呢?
skyaspnet 2008-05-26
  • 打赏
  • 举报
回复
我写了一个, 看一下是不是你要的效果:

chk.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="chk.aspx.cs" Inherits="chk" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged">
<asp:ListItem>csdn</asp:ListItem>
<asp:ListItem>sina</asp:ListItem>
<asp:ListItem>163</asp:ListItem>
</asp:CheckBoxList></div>
</form>
</body>
</html>


chk.aspx.cs:


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class chk : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void CheckBoxList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
Response.Write(CheckBoxList1.SelectedItem.Value);

}



}

我姓区不姓区 2008-05-26
  • 打赏
  • 举报
回复
同意5楼
wangkun9999 2008-05-26
  • 打赏
  • 举报
回复
写错了个地方,改进下:


private void CheckBoxList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
string DQChk="",StrDQChk="";//初始化当前选定的值
string PreChk=""; //上一次选定的值
if (ViewState["strChk"]!=null) PreChk=Convert.ToString(ViewState["strChk"]);
if (PreChk!="")//不是第一次点选
{
for (int i=0;i<CheckBoxList1.Items.Count;i++)//得到当前选定值
{
if (CheckBoxList1.Items[i].Selected) StrDQChk=CheckBoxList1.Items[i].Value+",";
}

if (StrDQChk.Length>((string)ViewState["strChk"]).Length)//增加选项时
{
DQChk=CompStr(StrDQChk,(string)ViewState["strChk"]);
}
else//取消选项时
{
DQChk=CompStr((string)ViewState["strChk"],StrDQChk);
}

ViewState["strChk"] = StrDQChk;

}
else//第一次点选
{
DQChk=CheckBoxList1.SelectedValue;
ViewState["strChk"] = DQChk+",";
}

}

//比较上次选定值和当前选定值的区别得出当前选项
private string CompStr(string str1,string str2)
{
string re="";
string[] arystr=str1.Split(',');
for (int i=0;i<arystr.Length;i++)
{
if (str2.IndexOf(arystr[i]+",")==-1) re=arystr[i];
break;
}
return re;

}



wangkun9999 2008-05-26
  • 打赏
  • 举报
回复
可以实现,不过做起来比较麻烦,需要保存上次选项,和当前选项做比较,得到当前点击项的值:

private void CheckBoxList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
string DQChk="",StrDQChk="";//初始化当前选定的值
string PreChk=""; //上一次选定的值
if (ViewState["strChk"]!=null) PreChk=Convert.ToString(ViewState["strChk"]);
if (PreChk!="")//不是第一次点选
{
for (int i=0;i<CheckBoxList1.Items.Count;i++)//得到当前选定值
{
if (CheckBoxList1.Items[i].Selected) StrDQChk=CheckBoxList1.Items[i].Value;
}

if (StrDQChk.Length>((string)ViewState["strChk"]).Length)//增加选项时
{
DQChk=CompStr(StrDQChk,(string)ViewState["strChk"]);
}
else//取消选项时
{
DQChk=CompStr((string)ViewState["strChk"],StrDQChk);
}

ViewState["strChk"] = StrDQChk;

}
else//第一次点选
{
DQChk=CheckBoxList1.SelectedValue;
ViewState["strChk"] = DQChk+",";
}

}

//比较上次选定值和当前选定值的区别得出当前选项
private string CompStr(string str1,string str2)
{
string re="";
string[] arystr=str1.Split(',');
for (int i=0;i<arystr.Length;i++)
{
if (str2.IndexOf(arystr[i]+",")==-1) re=arystr[i];
break;
}
return re;

}

zdjray 2008-05-26
  • 打赏
  • 举报
回复
没明白楼主什么意思。。
amandag 2008-05-25
  • 打赏
  • 举报
回复
CheckBoxList是把里面的CheckBox做为一个集合整体进行处理的,如果要实现楼主所说的功能,CheckBoxList貌似不可以,只能用多个CheckBox
songjinxi123 2008-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wxg22526451 的回复:]
如何获取CheckBoxList当前选项的值

C# codevoid Check_Clicked(Object sender, EventArgs e)
{

Message.Text = "Selected Item(s):<br /><br />";

// Iterate through the Items collection of the CheckBoxList
// control and display the selected items.
for (int i=0; i<checkboxlist1.Items.Count; i++)
{

if (checkboxlist1.Items[i]…
[/Quote]
我要获取当前选择项的值,按照你的方法就是获取所有选择的项的值
wxg22526451 2008-05-25
  • 打赏
  • 举报
回复
如何获取CheckBoxList当前选项的值
void Check_Clicked(Object sender, EventArgs e) 
{

Message.Text = "Selected Item(s):<br /><br />";

// Iterate through the Items collection of the CheckBoxList
// control and display the selected items.
for (int i=0; i<checkboxlist1.Items.Count; i++)
{

if (checkboxlist1.Items[i].Selected)
{

Message.Text += checkboxlist1.Items[i].Text + "<br />";

}

}

}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧