Link to home
Start Free TrialLog in
Avatar of Jay
Jay

asked on

Select/Unselect ALL checkbox not working

No checkbox is being shown for the Select/Unselect ALL checkbox at the header template. Also when I run, all the checkbox is already supposed to be checked !

Here is the aspx codes
 
<asp:GridView ID="grdEventType" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" DataKeyNames="EventType_ID" datasourceid="sdsEventType" ForeColor="Black" GridLines="Vertical" Width="50%" OnSelectedIndexChanged="grdEventType_SelectedIndexChanged">
            <AlternatingRowStyle BackColor="#CCCCCC" />
            <Columns>
                                       
                <asp:TemplateField HeaderText="Select">
        <HeaderTemplate>
        <input id="chkAll" onclick="javascript:SelectAllCheckboxes(this);"
            runat="server" type="checkbox" />
    </HeaderTemplate>
    <ItemTemplate>
       <asp:CheckBox ID="chkSelect" runat="server" />
    </ItemTemplate>
    <HeaderTemplate>
    </HeaderTemplate>
   </asp:TemplateField>

                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True"/>
                <asp:BoundField DataField="EventType_ID" HeaderText="EventType_ID" ReadOnly="True" SortExpression="EventType_ID" />
                <asp:BoundField DataField="EventTypeName" HeaderText="EventTypeName" SortExpression="EventTypeName" />
            </Columns>
            <FooterStyle BackColor="#CCCCCC" />
            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            <SortedAscendingCellStyle BackColor="#F1F1F1" />
            <SortedAscendingHeaderStyle BackColor="#808080" />
            <SortedDescendingCellStyle BackColor="#CAC9C9" />
            <SortedDescendingHeaderStyle BackColor="#383838" />
        </asp:GridView>
        <asp:SqlDataSource ID="sdsEventType" runat="server" ConnectionString="<%$ ConnectionStrings:EventContext %>" DeleteCommand="DELETE FROM [EventType] WHERE [EventType_ID] = @EventType_ID" InsertCommand="INSERT INTO [EventType] ([EventType_ID], [EventTypeName]) VALUES (@EventType_ID, @EventTypeName)" SelectCommand="SELECT * FROM [EventType]" UpdateCommand="UPDATE [EventType] SET [EventTypeName] = @EventTypeName WHERE [EventType_ID] = @EventType_ID">
            <DeleteParameters>
                <asp:Parameter Name="EventType_ID" Type="Int32" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="EventType_ID" Type="Int32" />
                <asp:Parameter Name="EventTypeName" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="EventTypeName" Type="String" />
                <asp:Parameter Name="EventType_ID" Type="Int32" />
            </UpdateParameters>
        </asp:SqlDataSource>
        <script lang="javascript">

 function SelectAllCheckboxes(spanChk){

   // Added as ASPX uses SPAN for checkbox
   var oItem = spanChk.children;
   var theBox= (spanChk.type=="checkbox") ? 
        spanChk : spanChk.children.item[0];
   xState=theBox.checked;
   elm=theBox.form.elements;

   for(i=0;i<elm.length;i++)
     if(elm[i].type=="checkbox" && 
              elm[i].id!=theBox.id)
     {
       //elm[i].click();
       if(elm[i].checked!=xState)
         elm[i].click();
       //elm[i].checked=xState;
     }
 }
</script>

Open in new window


The code behind
 protected void grdEventType_SelectedIndexChanged(object sender, EventArgs e)
    {
        // StringBuilder object
        StringBuilder str = new StringBuilder();

        // Select the checkboxes from the GridView control
        for (int i = 0; i < grdEventType.Rows.Count; i++)
        {
            GridViewRow row = grdEventType.Rows[i];
            bool isChecked = ((CheckBox)row.FindControl("chkSelect")).Checked;

            if (isChecked)
            {
                // Column 2 is the name column
                str.Append(grdEventType.Rows[i].Cells[2].Text);
            }
        }

        // prints out the result
        Response.Write(str.ToString());
    }

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of sammySeltzer
sammySeltzer
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial