This is a migrated thread and some comments may be shown as answers.

Maximum Checked Allow In Checkbox GridTemplateColumn/ItemTemplate

6 Answers 119 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Ebenezer
Top achievements
Rank 1
Ebenezer asked on 14 Aug 2013, 02:03 PM
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

Sort by
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
<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,

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()" />
Javascript:
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
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
0
A2H
Top achievements
Rank 1
answered on 16 Aug 2013, 05:49 PM
Hi,
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
Tags
General Discussions
Asked by
Ebenezer
Top achievements
Rank 1
Answers by
A2H
Top achievements
Rank 1
Ebenezer
Top achievements
Rank 1
Share this question
or