Click here to Skip to main content
Click here to Skip to main content

Selecting multiple checkboxes inside a GridView control

By , 3 Aug 2005
 

Introduction

GridView is a new data bound control introduced by Microsoft in Visual Studio .NET 2005. Most of the operations like sorting, paging and selecting items from the GridView are already built in and you can use it through the design view. In this article, I will explain how you can select single as well as all the checkboxes which are inside a GridView control.

Selecting Checkboxes inside the GridView Control

GridView has a CheckboxField column which maps the checkbox to a field in the database. In this article we won't be using that, we will make a checkbox in a template column. Simply add a asp:checkbox control in the item template of the GridView control. If you are working with a DataGrid control and want the same functionality, then please check out my article: Selecting multiple checkboxes inside a DataGrid control.

The HTML code looks something like this:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
   AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="PersonID" 
   DataSourceID="mySource" Width="366px" CellPadding="4" 
   ForeColor="#333333" GridLines="None">
 <Columns>
   <asp:CommandField ShowSelectButton="True" />
   <asp:BoundField DataField="PersonID" HeaderText="PersonID" 
         InsertVisible="False" ReadOnly="True" SortExpression="PersonID" />
   <asp:BoundField DataField="Name" HeaderText="Name" 
                                       SortExpression="Name" />
   <asp:TemplateField HeaderText="Select">
    <ItemTemplate>
       <asp:CheckBox ID="chkSelect" runat="server" />
    </ItemTemplate>
    <HeaderTemplate>
    </HeaderTemplate>
   </asp:TemplateField>

 </Columns>

 <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
 <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
 <PagerStyle BackColor="#FFCC66" ForeColor="#333333" 
                           HorizontalAlign="Center" />
 <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
 <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
 <AlternatingRowStyle BackColor="White" />
</asp:GridView>

Now in the button click event, write this code:

// StringBuilder object
StringBuilder str = new StringBuilder();

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

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

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

The code above just iterates through the GridView and selects the checked checkboxes. Later it appends the selected value to a StringBuilder object. In order to use StringBuilder you will need to add the System.Text namespace.

Making a CheckAll functionality

To add a check-all functionality in the GridView, simply add a HTML CheckBox to the header template of the checkbox column.

<HeaderTemplate>
  <input id="chkAll" onclick="javascript:SelectAllCheckboxes(this);" 
              runat="server" type="checkbox" />
</HeaderTemplate>

SelectAllCheckboxes JavaScript method:

<script language="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>

This is it. I hope you like the article, happy coding!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

azamsharp
Web Developer
United States United States
Member
I am the founder of knowledge base website, HighOnCoding, GridViewGuy, RefactorCode.com and ScreencastADay.com.
 
HighOnCoding is a website which will get you high legally with useful information. There are tons of articles, videos and podcasts hosted on HighOnCoding.
 
HighOnCoding.com www.HighOnCoding.com
 

My Blog:

Blog

 

Buy my iPhone app ABC Pop

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralGood ArticlememberAlireza_136210 Apr '13 - 20:33 
QuestionI am not getting the check box valuemembersalamkudru16 Jan '13 - 20:23 
AnswerRe: I am not getting the check box valuemembersalamkudru16 Jan '13 - 23:17 
I Fixed ,thank you very mach
GeneralRe: I am not getting the check box valuememberAnubha Bhatnagar22 Mar '13 - 2:14 
GeneralRe: I am not getting the check box valuemembersalamkudru24 Mar '13 - 18:58 
GeneralMy vote of 5memberbluesathish20 Dec '12 - 17:23 
GeneralMy vote of 5membermanoj kumar choubey9 Feb '12 - 21:05 
Questionhow can i count selected items and save themmembersparbery18 Aug '11 - 5:08 
GeneralThanks!memberfundmf5 Aug '11 - 20:23 
GeneralthxmemberUzhn15 Apr '11 - 20:44 
GeneralUpdate Databasememberpmosborne19 Jan '11 - 11:05 
GeneralGridviewmemberragini123021 Nov '10 - 20:46 
GeneralMy vote of 1memberadolfhardik3 Jun '10 - 23:21 
QuestionHow to Invoke Child Listview controls' Edit and Update Eventsmemberrenil64912 May '10 - 5:07 
QuestionMaster Pagemembervicky_geek28 Apr '10 - 4:51 
AnswerRe: Master Pagememberazamsharp28 Apr '10 - 4:59 
GeneralRe: Master Pagemembervicky_geek28 Apr '10 - 19:17 
GeneralAutoPlay From the Listmembervondon17 Feb '10 - 8:56 
Generalit works greatmemberAnilMiLaN26 Nov '09 - 18:16 
QuestionHow to bring Old state to the checkboxes of the gridview control when the postback occursmemberRajeshgut14 Oct '09 - 3:40 
AnswerRe: How to bring Old state to the checkboxes of the gridview control when the postback occursmemberazamsharp28 Apr '10 - 5:00 
QuestionCan you do this without formsmembercheesehead9118229 Sep '09 - 7:50 
QuestionHow to select a checkbox with ctrl and click instead of clickmemberemily022823 Jun '09 - 9:15 
GeneralNice articlememberDonsw18 Apr '09 - 10:21 
GeneralPlz can u helpmemberMehul_qaz16 Apr '09 - 3:52 
Generalnice articlememberkanza azhar12 Apr '09 - 3:37 
QuestionCheckboxes and GridView paging [modified]memberboqboq2 Mar '09 - 1:58 
AnswerRe: Checkboxes and GridView pagingmembercUbeindaclUb5 Sep '11 - 23:37 
QuestionBeautiful!...How can I have 2 gridviews on a page and NOT have them control each other?memberBrian Fay9 Feb '09 - 11:51 
AnswerRe: Beautiful!...How can I have 2 gridviews on a page and NOT have them control each other?memberazamsharp11 Feb '09 - 7:50 
GeneralExcelente Mi Amigo. Sos pero jodido.memberLuis Rangel4 Feb '09 - 6:34 
GeneralAA - Awesome Azam!memberplanetregin23 Dec '08 - 4:39 
GeneralgoodmemberMember 273824627 Aug '08 - 22:33 
GeneralThank you for the great articlememberjitendra v patil22 Aug '08 - 0:11 
JokeGreat article - simple and concise!memberMark Abraham8 Aug '08 - 10:41 
QuestionSessions questionsmemberManigandanmax2cs16 Jul '08 - 0:31 
QuestionHow to count checked checkbox while paging in the gridview? [modified]memberMember 408591513 Jun '08 - 1:46 
QuestionGridView.DataSource = table; is not working with checkboxes in the GridViewmemberMember 459057921 Mar '08 - 22:57 
QuestionHow to mark CheckBox as checked in DataGrid according to condition taken from databasememberabhijeet.musale13 Mar '08 - 3:22 
General multiple column each one has checkall checkbox, I got itmemberab_dc21 Nov '07 - 2:16 
Questionmultiple column each one has checkall checkbox, how to???memberab_dc21 Nov '07 - 1:28 
GeneralThe checkbox returns false even if it checked [modified]memberNamrata110 Oct '07 - 23:37 
QuestionRe: The checkbox returns false even if it checkedmemberab_dc23 Oct '07 - 2:01 
GeneralVery Good Articlememberumay26 Oct '07 - 19:35 
GeneralRe: Very Good Articlememberab_dc28 Oct '07 - 1:06 
GeneralRe: Very Good Articlememberriteshms26 Feb '08 - 23:45 
GeneralMulti column Check box listmemberT.Ashraf15 Aug '07 - 8:54 
GeneralUsing similar to update multiple rowsmemberbeish19 Aug '07 - 23:06 
GeneralBrilliant!memberthund3rstruck6 Jun '07 - 11:36 
GeneralThanks a lot azamsharpmembertariqbk19 May '07 - 8:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web01 | 2.6.130516.1 | Last Updated 3 Aug 2005
Article Copyright 2005 by azamsharp
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid