Solved

Can't set the Header Text in my GridView in ASP.NET C#

Posted on 2013-06-24
9
689 Views
Last Modified: 2013-06-25
I am using ASP.NET 4.0 C# and am trying to programmatically set the Header Text for the GridView on my page.  I am getting an Index was out of range error and can't figure out what I am doing wrong.  Here is the GridView on my page:

            <p><b>Warnings</b></p>
            <asp:GridView ID="gvWarnings" runat="server">
            </asp:GridView>

Open in new window


And here is the code where I am trying to set the HeaderText:

                gvWarnings.DataSource = dtWarnings;
                gvWarnings.CellPadding = 3;
                gvWarnings.CellSpacing = 3;
                gvWarnings.Columns[0].HeaderText = "Warning";
                gvWarnings.Columns[1].HeaderText = "Date";
                gvWarnings.Columns[2].HeaderText = "Title";
                gvWarnings.DataBind();

Open in new window


dtWarnings is a datatable with 3 columns in it.  

Any help is greatly appreciated!
0
Comment
Question by:dyarosh
  • 6
  • 3
9 Comments
 
LVL 2

Expert Comment

by:eli411
ID: 39273390
You might have null records in your query!  I would recommand that you check null in your coding - put exception or something.
0
 

Author Comment

by:dyarosh
ID: 39273412
The table definitely has data.  It displays on the screen if I comment out the code where I am trying to set the Header Column Names.
0
 
LVL 2

Expert Comment

by:eli411
ID: 39273423
I know the table has data and you might have one missing records out from your table!  Have you check all individual rows using SQL script?
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 2

Expert Comment

by:eli411
ID: 39273425
what is your dtWarnings looks like in code behind or SQL script/stored procedure?  The index error meant that you either reference wrong columns or with some missing data!
0
 
LVL 2

Accepted Solution

by:
eli411 earned 500 total points
ID: 39273442
0
 

Author Comment

by:dyarosh
ID: 39273482
Here is the SQL:

            sql = "SELECT WarningType, WarningDate, TitleDesc " +
                  "FROM EMP_Warnings " +
                  "JOIN EMP_WarningType ON EMP_WarningType.WarningTypeID = EMP_Warnings.WarningTypeID " +
                  "WHERE EmployeeID = " + employeeID.ToString();
0
 

Author Closing Comment

by:dyarosh
ID: 39275254
I ended up setting the column headings in the RowDataBound event.  Thanks for the help.
0
 
LVL 2

Expert Comment

by:eli411
ID: 39275261
Here is how I coded my datagrid!

---------------------- aspx page ---------------------- (UserName from database column)

<tr>
     <td>
              <asp:datagrid id="dgTest" runat="server" OnPageIndexChanged="dgTest_OnPageIndexChanged">
                   <asp:TemplateColumn HeaderText="Name">
                          <ITEMTEMPLATE>
                                 <%#DataBinder.Eval(Container.DataItem,"UserName")%>
                          </ITEMTEMPLATE>
                   </asp:TemplateColumn>
              </asp:datagrid>
     </td>
</tr>

------------------------- code behind page ------------------------
public void dgTest_OnPageIndexChanged(Object sender, DataGridItemEventArgs e)
{
    ---- open db connection ---
    .....
    ---- select sql syntax here

}
0
 
LVL 2

Expert Comment

by:eli411
ID: 39275268
0

Featured Post

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question