Click here to Skip to main content
15,889,909 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi friends,

This is the following code for binding gridview from datatable.

<pre lang="c#">DataTable result = inter.griddatabind(s, adminid);
            if (result!=null)
            {
                for (int i = 0; i < result.Rows.Count; i++)
                {
                    subjectteachgrid.Rows[i].Cells[1].Text = result.Rows[i]["AcademicYear"].ToString();
                    subjectteachgrid.Rows[i].Cells[2].Text = result.Rows[i]["Medium"].ToString();
                    subjectteachgrid.Rows[i].Cells[3].Text = result.Rows[i]["ClassName"].ToString() + "-" + result.Rows[i]["SectionName"].ToString();
                    subjectteachgrid.Rows[i].Cells[4].Text = result.Rows[i]["SubjectName"].ToString();
                    subjectteachgrid.Rows[i].Cells[5].Text = result.Rows[i]["Teachername"].ToString();
                    subjectteachgrid.Rows[i].Cells[6].Text = result.Rows[i]["Teacher_Type"].ToString();
                    subjectteachgrid.Rows[i].Cells[7].Text = result.Rows[i]["Maxnoofperiod"].ToString();

                }



and the following is my aspx file
ASP.NET
<pre lang="HTML"><Columns>
                            <asp:CommandField ButtonType="Image" CancelImageUrl="~/images/Cancel.jpg" 
                                DeleteImageUrl="~/images/delete.jpg" EditImageUrl="~/images/Edit.jpg" 
                                ShowDeleteButton="True" ShowEditButton="True" 
                                UpdateImageUrl="~/images/update.jpg" />
             <asp:TemplateField HeaderText="AcadmicYear" >
             <ItemTemplate>
             <asp:Label ID="acyearlbl" runat="server" Text='<%# Eval("AcadamicYear") %>'/>
             </ItemTemplate>
             <EditItemTemplate>
             <asp:DropDownList ID="acyeardropdown1" AutoPostBack="true" OnSelectedIndexChanged="acyeardropdown1_SelectedIndexChanged" runat="server" Width="100px">
            </asp:DropDownList>
            
             </EditItemTemplate>
             </asp:TemplateField>
             <asp:TemplateField HeaderText="Medium">
             <ItemTemplate>
             <asp:Label ID="mediumlbl" runat="server" Text='<%# Eval("Medium") %>'/>
             </ItemTemplate>
             <EditItemTemplate>
             <asp:DropDownList ID="mediumdropdown1" AutoPostBack="true"  OnSelectedIndexChanged="mediumdropdown1_SelectedIndexChanged" runat="server" Width="100px">
            </asp:DropDownList>
            
             </EditItemTemplate>
             </asp:TemplateField>
             <asp:TemplateField HeaderText="Class">
             <ItemTemplate>
             <asp:Label ID="classlbl" runat="server" Text='<%# Eval("ClassName") %>'/>
             </ItemTemplate>
             <EditItemTemplate>
             <asp:DropDownList ID="Classdropdown1"  runat="server" AutoPostBack="true" OnSelectedIndexChanged="Classdropdown1_SelectedIndexChanged" Width="100px">
            </asp:DropDownList>
            
             </EditItemTemplate>
             </asp:TemplateField>
             <asp:TemplateField HeaderText="Subject">
             <ItemTemplate>
             <asp:Label ID="Label2" runat="server" Text='<%# Eval("Subject") %>'/>
             </ItemTemplate>
             <EditItemTemplate>
             <asp:DropDownList ID="Subjectdropdown1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="Subjectdropdown1_SelectedIndexChanged" Width="100px">
            </asp:DropDownList>
            
             </EditItemTemplate>
             </asp:TemplateField>
             <asp:TemplateField HeaderText="Teacher">
             <ItemTemplate>
             <asp:Label ID="Label2" runat="server" Text='<%# Eval("Teacher") %>'/>
             </ItemTemplate>
             <EditItemTemplate>
             <asp:DropDownList ID="Teacherdropdown1" AutoPostBack="true" runat="server"  Width="100px">
            </asp:DropDownList>
            
             </EditItemTemplate>
             </asp:TemplateField>
             <asp:TemplateField HeaderText="Designation">
             <ItemTemplate>
             <asp:Label ID="Label2" runat="server" Text='<%# Eval("Designation") %>'/>
             </ItemTemplate>
             <EditItemTemplate>
             <asp:DropDownList ID="Designationdropdown1" AutoPostBack="false" runat="server"  Width="100px">
            </asp:DropDownList>
            
             </EditItemTemplate>
             </asp:TemplateField>
             <asp:BoundField HeaderText="Max Period" runat="server" DataField="MaximumPeriod" />
                        </Columns>

The datatable value is not null and it has the value.but the following error is occured.
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Posted
Updated 3-Sep-13 3:03am
v4

1 solution

Hi

You can bind the datatable to gridview like this

subjectteachgrid.DataSource=result.DefaultView.

Just try it once and let me know
 
Share this answer
 
Comments
baskaran chellasamy 3-Sep-13 8:53am    
no. In a cell[3] I want to bind two column value.so i cannot bind it datasource.
superselector 5-Sep-13 8:11am    
I would suggest you to create a new datatable by with the columns in gridview. iterate through the result dataTable rows and create the new datatable as you want in the your code. then just bind the new datatable as datasource to the gridview

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900