Scenario:
I have a repeater with people’s name listed. Next to every name, there is a checkbox used to select people. Every time, only 2 people can be selected.
HTML portion,
<asp:Repeater ID="Repeater1" runat="server" EnableViewState = "false">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" onclick="CheckedChanged(this.checked)" />
<%#Eval("Name")%>
</ItemTemplate>
</asp:Repeater>
<input id="TotalChecked" type="hidden" value="0"/>
Javascript is used to count how many people have been selected.
function getObj(name)
{
if (document.getElementById) // test if browser supports document.getElementById
{
this.obj = document.getElementById(name);
}
else if (document.all) // test if browser supports document.all
{
this.obj = document.all[name];
}
else if (document.layers) // test if browser supports document.layers
{
this.obj = document.layers[name];
}
}
function CheckedChanged(IsChecked)
{
var objTotalChecked = new getObj('TotalChecked');
var intTotalChecked = eval(objTotalChecked.obj.value);
if (IsChecked)
{
objTotalChecked.obj.value = intTotalChecked + 1;
}
else
{
objTotalChecked.obj.value = intTotalChecked - 1;
}
if (objTotalChecked.obj.value >= 2 )
alert("You can only talk to 2 people. Now you have selected " + objTotalChecked.obj.value +".");
}
In addition, when the page or part of the page is submitted, on server side, I would validate the total number of selected people.