2009/3/1 記
CheckBoxList
CheckBoxList を RadioButtonList のように使って、選択結果を表示します。
もともと RadioButtonList を使えば済む話で無駄なことかもしれませんが、せっかく作ったので(笑)・・・
Select items from the CheckBoxList.
コードは以下のとおりです。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
// CheckBoxList を RadioButtonList のように使って、選択結果を表示。
// もともと RadioButtonList を使えば済む話で無駄なことかも。
void Check_Clicked(Object sender, EventArgs e)
{
object obj = ViewState["ItemNumber"];
int i;
int count = 0;
for (i = 0; i < checkboxlist1.Items.Count; i++)
{
if (checkboxlist1.Items[i].Selected)
{
count++;
if (obj != null)
{
int prev = (int)obj;
if (i == prev)
{
checkboxlist1.Items[i].Selected = false;
}
else
{
Message.Text = "Selected Item:" + checkboxlist1.Items[i].Text;
ViewState["ItemNumber"] = i;
}
}
else
{
Message.Text = "Selected Item:" + checkboxlist1.Items[i].Text;
ViewState["ItemNumber"] = i;
}
}
}
if (count == 0 && obj != null)
{
Message.Text = String.Empty;
ViewState["ItemNumber"] = null;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title> CheckBoxList Example </title>
</head>
<body>
<form id="form2" runat="server">
Select items from the CheckBoxList.
<br /><br />
<asp:CheckBoxList id="checkboxlist1"
AutoPostBack="True"
OnSelectedIndexChanged="Check_Clicked"
runat="server">
<asp:ListItem>Item 1</asp:ListItem>
<asp:ListItem>Item 2</asp:ListItem>
<asp:ListItem>Item 3</asp:ListItem>
<asp:ListItem>Item 4</asp:ListItem>
<asp:ListItem>Item 5</asp:ListItem>
<asp:ListItem>Item 6</asp:ListItem>
</asp:CheckBoxList>
<br />
<asp:label id="Message" runat="server" AssociatedControlID="checkboxlist1"/>
</form>
</body>
</html>