62,046
社区成员
发帖
与我相关
我的任务
分享
<%@ 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>
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);
}
}
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;
}
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;
}
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 />";
}
}
}