How do I limit users to Check only 8 items in a CheckBox inside GridTemplateColumn/ItemTemplate either by Client side or server side
<
telerik:GridTemplateColumn
DataField
=
"ID"
UniqueName
=
"CheckBoxColumn"
>
<
ItemTemplate
>
<
asp:CheckBox
ID
=
"CheckBoxStatus"
runat
=
"server"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
6 Answers, 1 is accepted
0
A2H
Top achievements
Rank 1
answered on 14 Aug 2013, 05:50 PM
Hi ,
If you want to validate the count on checkbox click
Please try this
1)
Add a hidden filed to your aspx page
2) Modify you template column like given below
3) Add the following javascript method
<
asasp:HiddenField
ID
=
"hdnCheckedCount"
runat
=
"server"
Value
=
"0"
/>
2) Modify you template column like given below
<
tetelerik:GridTemplateColumn
DataField
=
"ID"
UniqueName
=
"CheckBoxColumn"
>
<
ItemTemplate
>
<
asp:CheckBox
ID
=
"CheckBoxStatus"
runat
=
"server"
onClick
=
"GetCheckedItemCount(this)"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
3) Add the following javascript method
function
GetCheckedItemCount(objCheckbox) {
if
(objCheckbox.checked ==
true
) {
if
(document.getElementById(
'<%=hdnCheckedCount.ClientID %>'
).value >= 8) {
alert(
'Please select only 8 rows'
);
objCheckbox.checked =
false
;
}
else
{
document.getElementById(
'<%=hdnCheckedCount.ClientID %>'
).value = parseInt(document.getElementById(
'<%=hdnCheckedCount.ClientID %>'
).value) + 1;
}
}
else
{
document.getElementById(
'<%=hdnCheckedCount.ClientID %>'
).value = parseInt(document.getElementById(
'<%=hdnCheckedCount.ClientID %>'
).value) - 1;
}
}
Thanks,
A2H
0
Accepted
A2H
Top achievements
Rank 1
answered on 14 Aug 2013, 06:24 PM
Hi,
Javascript:
Thanks,
A2H
If you want to validate the checkbox checked count on a button click try this
ASPX:
<
asp:Button
ID
=
"Button1"
runat
=
"server"
Text
=
"Button"
OnClientClick
=
"GetCheckedItemCountbtnClick()"
/>
function
GetCheckedItemCountbtnClick() {
var
checkedcount = 0;
var
grid = $find(
"<%=RadGrid1.ClientID %>"
);
for
(
var
i = 0; i < grid.get_masterTableView().get_dataItems().length; i++) {
var
objchkbox = grid.get_masterTableView().get_dataItems()[i].findElement(
"CheckBoxStatus"
);
if
(objchkbox.checked) {
checkedcount++;
}
}
if
(checkedcount > 8 ) {
alert(
"Please select only 8 rows"
);
return
false
;
}
}
Thanks,
A2H
0
Ebenezer
Top achievements
Rank 1
answered on 14 Aug 2013, 06:41 PM
Hi A2H
Thanks a lot. It works great
Thanks a lot. It works great
0
Ebenezer
Top achievements
Rank 1
answered on 16 Aug 2013, 03:23 PM
Hi A2H
How do I use same great code you gave me to make sure that user's don't leave the checkboxes blank. I don't want users to leave the checked boxes blank. At least one item must be checked but not more that 8
How do I use same great code you gave me to make sure that user's don't leave the checkboxes blank. I don't want users to leave the checked boxes blank. At least one item must be checked but not more that 8
0
A2H
Top achievements
Rank 1
answered on 16 Aug 2013, 05:49 PM
Hi,
Please modify the JS function like given below
Thanks,
A2H
Please modify the JS function like given below
function
GetCheckedItemCountbtnClick() {
var
checkedcount = 0;
var
grid = $find(
"<%=RadGrid1.ClientID %>"
);
for
(
var
i = 0; i < grid.get_masterTableView().get_dataItems().length; i++) {
var
objchkbox = grid.get_masterTableView().get_dataItems()[i].findElement(
"CheckBoxStatus"
);
if
(objchkbox.checked) {
checkedcount++;
}
}
if
(checkedcount > 8) {
alert(
"Please select only 8 rows"
);
return
false
;
}
if
(checkedcount == 0) {
alert(
"Please select atleast one row"
);
return
false
;
}
}
Thanks,
A2H
0
Ebenezer
Top achievements
Rank 1
answered on 16 Aug 2013, 06:34 PM
Hi A2H
Thanks a lot. It works great again
Thanks a lot. It works great again