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
The code behind
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>
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());
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.