System.Web.UI.WebControls.DataGridColumnCollection must have items of type 'System.Web.UI.WebControls.DataGridColumn'. 'table' is of type 'System.Web.UI.HtmlControls.HtmlTable'.Can you show how you have declared the DataGrid?
You are propably trying to add a HTML-Table to the Columns-collection of your DataGrid.
If you posted the code where this error occurs we will surely be able to help you out. You can usually find the line-number in the code-behind file from where the error originated. That is if you have compiled in Debug-mode.
I've not included the columns as there's a lot of code, let me know if you need them.
<ASP:DataGrid id="MyDataGrid" runat="server"
Width="500" BorderColor="black"
ShowFooter="false" CellPadding=3 CellSpacing="0"
HeaderStyle-CssClass="scroller" HeaderStyle-BackColor="#000033"
ItemStyle-CssClass="columnText" EditItemStyle-CssClass="columnText"
OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel"
OnUpdateCommand="MyDataGrid_Update" OnDeleteCommand="MyDataGrid_Delete"
DataKeyField="SupplierID" AutoGenerateColumns="false"
AllowPaging="true" PageSize="10" OnPageIndexChanged="MyDataGrid_Page"
PagerStyle-Mode="NumericPages" PagerStyle-HorizontalAlign="Right"
PagerStyle-Visible="true" >
Put it all, columns are crucial here.
Here is the full code:
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
//The line above is the one causing the error
<tr>
<td>
<form id="form1" runat="server">
<table width="590" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>
<ASP:DataGrid id="MyDataGrid" runat="server"
Width="500" BorderColor="black"
ShowFooter="false" CellPadding=3 CellSpacing="0"
HeaderStyle-CssClass="scroller" HeaderStyle-BackColor="#000033"
ItemStyle-CssClass="columnText" EditItemStyle-CssClass="columnText"
OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel"
OnUpdateCommand="MyDataGrid_Update" OnDeleteCommand="MyDataGrid_Delete"
DataKeyField="SupplierID" AutoGenerateColumns="false"
AllowPaging="true" PageSize="10" OnPageIndexChanged="MyDataGrid_Page"
PagerStyle-Mode="NumericPages" PagerStyle-HorizontalAlign="Right"
PagerStyle-Visible="true" >
<Columns>
<asp:EditCommandColumn HeaderText="Edit" EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false"/>
<asp:BoundColumn HeaderText="ID" SortExpression="SupplierID" ReadOnly="True" DataField="SupplierID" ItemStyle-Wrap="false"/
<asp:TemplateColumn HeaderText="Suppliers" SortExpression="txt_Supplier">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Supplier") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_Supplier" Width="150" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Supplier") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Contact" SortExpression="txt_Contact">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Contact") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_Contact" Width="100" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Contact") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Address1" SortExpression="txt_Address1">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Address1") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_Address1" Width="150" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Address1") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Address2" SortExpression="txt_Address2">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Address2") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_Address2" Width="150" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Address2") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Town" SortExpression="txt_Town">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Town") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_Town" Width="100" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Town") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="City" SortExpression="txt_City">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_City") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_City" Width="100" Text='<%# DataBinder.Eval(Container.DataItem, "txt_City") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Post Code" SortExpression="txt_PostCode">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_PostCode") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_PostCode" Width="50" Text='<%# DataBinder.Eval(Container.DataItem, "txt_PostCode") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Phone" SortExpression="txt_Phone">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Phone") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_Phone" Width="50" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Phone") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Fax" SortExpression="txt_Fax">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Fax") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_Fax" Width="50" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Fax") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Mobile" SortExpression="txt_Mobile">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Mobile") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_Mobile" Width="50" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Mobile") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Email" SortExpression="txt_Email">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Email") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_Email" Width="100" Text='<%# DataBinder.Eval(Container.DataItem, "txt_Email") %>' CssClass="columnText" />
</EditItemTemplate>
</asp:TemplateColumn
<asp:TemplateColumn HeaderText="Notes" SortExpression="txt_SupplierNotes">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txt_SupplierNotes") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="add_txt_SupplierNotes" Width="250" Text='<%# DataBinder.Eval(Container.DataItem, "txt_SupplierNotes") %>'
CssClass="columnText" TextMode="MultiLine" Rows="6"/>
</EditItemTemplate>
</asp:TemplateColumn
</ASP:DataGrid>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
Are you sure there isn't anything before that line that could cause it? More nested grids or tables?
Nothing that I can see. This is the only datagrid on the page and the other tables on the page are completely seperate from this one.
It's pretty weird as I've created a few other similar pages without any problems.
0 comments:
Post a Comment