//lz参考下 //bind DataTable table = getDataTable("SELECT roleName,roleID FROM table1");//your dataSource for (int i = 0; i < table.Rows.Count; i++) { CheckBoxListRole.Items.Add(new ListItem(table.Rows[i]["roleName"].ToString(),table.Rows[i]["roleID"].ToString())); } //遍历判断 for (int i = 0; i < CheckBoxListRole.Items.Count; i++) { if (CheckBoxListRole.Items[i].Selected) { //there //i } }
for (i=0;i<=Chklist.Items.Count-1;i++) { if (Chklist.Items[i].Selected == true) { //在这里加个判断,下面就以index来对比,你可以用Value来对比 if (那串选中index字符串.IndexOf(i)!=-1) { int Index = i; string Myvalue = Chklist.Items[i].Value; } } }
//bind DataTable table = getDataTable("SELECT roleName,roleID FROM table1");//your dataSource for (int i = 0; i < table.Rows.Count; i++) { CheckBoxListRole.Items.Add(new ListItem(table.Rows[i]["roleName"].ToString(),table.Rows[i]["roleID"].ToString())); } //遍历判断 for (int i = 0; i < CheckBoxListRole.Items.Count; i++) { if (CheckBoxListRole.Items[i].Selected) { //there //i } }
遍历所有item,去掉原来的那5个选中的就行了
你們所說的我都明白,但是我想實現的功能是選中哪個,得到哪個控件的index or value 我想知道我問的,有沒有辦法實現,而不是怎么去實現把數據保存到數據庫里,或者比對 請大家按照我的思路去想有沒有辦法實現好嗎?
参考一下: protected void Page_Load(object sender, EventArgs e) { Dictionary<int, bool> dic = new Dictionary<int, bool>(); for (int i = 0; i < CheckBoxList1.Items.Count; i++) dic.Add(i, CheckBoxList1.Items[i].Selected); if (ViewState["cblChecked"] == null) ViewState["cblChecked"] = dic; } protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e) { if (ViewState["cblChecked"] != null) { Dictionary<int, bool> dic = ViewState["cblChecked"] as Dictionary<int,bool>; for (int i = 0; i < CheckBoxList1.Items.Count; i++) { if (dic[i] != CheckBoxList1.Items[i].Selected) Response.Write("当前操作项为:" + i.ToString()); dic[i] = CheckBoxList1.Items[i].Selected; } ViewState["cblChecked"] = dic; } }
http://blog.csdn.net/xft_1981/archive/2007/06/22/1661721.aspx
主要代码
for(int i = 0;i < chbClientState.Items.Count;i++)
{
if(chbClientState.Items[i].Selected)
{
Response.Write(chbClientState.Items[i].Value);
}
}
如果要知道所有选中的项,请遍历 for ...
如果要知道当前点选的项,要在CheckBoxList的点击事件里写代码(js)
如:for (i=0;i<=Chklist.Items.Count-1;i++)
{
if (Chklist.Items[i].Selected == true)
{
int Index = i;
string Myvalue = Chklist.Items[i].Value;
}
}
this.CheckBoxList.SelectedItem;
this.CheckBoxList.SelectedValue;
{
Response.Write(CheckBoxList1.Items[i].Selected.ToString() + " " + i.ToString());
}
1.界面上已經有選中的item
2.我寫的得到當前選中的那個item
而你們所寫的,只能得到selected item,不是我想要的功能
界面上有10個item,有5個原來就有的,現在又選中了一個,
我要的是現在選中的這個,而不是原本那5個的index or value,
請大家再幫我想想
然后你再跟你现在得到的选中的值对比一下。一对比就知道你这次选中了哪些值和INDEX了。
//bind
DataTable table = getDataTable("SELECT roleName,roleID FROM table1");//your dataSource
for (int i = 0; i < table.Rows.Count; i++)
{
CheckBoxListRole.Items.Add(new ListItem(table.Rows[i]["roleName"].ToString(),table.Rows[i]["roleID"].ToString()));
}
//遍历判断
for (int i = 0; i < CheckBoxListRole.Items.Count; i++)
{
if (CheckBoxListRole.Items[i].Selected)
{
//there
//i
}
}
for (i=0;i<=Chklist.Items.Count-1;i++)
{
if (Chklist.Items[i].Selected == true)
{
//在这里加个判断,下面就以index来对比,你可以用Value来对比
if (那串选中index字符串.IndexOf(i)!=-1)
{
int Index = i;
string Myvalue = Chklist.Items[i].Value;
}
}
}
//bind
DataTable table = getDataTable("SELECT roleName,roleID FROM table1");//your dataSource
for (int i = 0; i < table.Rows.Count; i++)
{
CheckBoxListRole.Items.Add(new ListItem(table.Rows[i]["roleName"].ToString(),table.Rows[i]["roleID"].ToString()));
}
//遍历判断
for (int i = 0; i < CheckBoxListRole.Items.Count; i++)
{
if (CheckBoxListRole.Items[i].Selected)
{
//there
//i
}
}
我想知道我問的,有沒有辦法實現,而不是怎么去實現把數據保存到數據庫里,或者比對
請大家按照我的思路去想有沒有辦法實現好嗎?
protected void Page_Load(object sender, EventArgs e)
{
Dictionary<int, bool> dic = new Dictionary<int, bool>();
for (int i = 0; i < CheckBoxList1.Items.Count; i++)
dic.Add(i, CheckBoxList1.Items[i].Selected);
if (ViewState["cblChecked"] == null)
ViewState["cblChecked"] = dic;
}
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (ViewState["cblChecked"] != null)
{
Dictionary<int, bool> dic = ViewState["cblChecked"] as Dictionary<int,bool>;
for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{
if (dic[i] != CheckBoxList1.Items[i].Selected)
Response.Write("当前操作项为:" + i.ToString());
dic[i] = CheckBoxList1.Items[i].Selected;
}
ViewState["cblChecked"] = dic;
}
}