开发者

The DataSourceID of 'GridView1' must be the ID of a control of type IDataSource

Why i am getting following error ? i can see data when i did a test run query !

Server Error in '/' Application.
The DataSourceID of 'GridView1' must be the ID of a control of type IDataSource.  A control with ID 'MyDataSource' could not be found.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: The DataSourceID of 'GridView1' must be the ID of a control of type IDataSource.  A control with ID 'MyDataSource' could not be found.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[HttpException (0x80004005): The DataSourceID of 'GridView1' must be the ID of a control of type IDataSource.  A control with ID 'MyDataSource' could not be found.]
   System.Web.UI.WebControls.DataBoundControl.GetDataSource() +8556294
   System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +37
   System.Web.UI.WebControls.DataBoundControl.OnLoad(EventArgs e) +19
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627


Version Information: Microsoft .NET Framework Version:2.0.50727.4927; ASP.NET Version:2.0.50727.4927 

Below is my source :

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:Label ID="Label1" runat="server" Text="Label"></asp:La开发者_开发知识库bel>
    </div>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="MyDataSource">
        <Columns>
            <asp:BoundField DataField="Colum1" HeaderText="Colum1" 
                SortExpression="Colum1" />
            <asp:BoundField DataField="Column2" HeaderText="Column2" 
                SortExpression="Column2" />
            <asp:BoundField DataField="Column3" HeaderText="Column3" 
                SortExpression="Column3" />
        </Columns>
    </asp:GridView>
    </form>
</body>
</html>


The problem is that there is no datasource control on the form with the ID MyDataSource which is the value of the DataSourceID property of the GridView.

<asp:GridView ID="GridView1" runat="server" DataSourceID="MyDataSource"></asp:GridView>
<asp:SqlDataSource ID="MyDataSource" runat="server"></asp:SqlDataSource>

In the above example, I used a SqlDataSource. However, any datasource control will do and its ID value must match the value used in the DataSourceID attribute of the GridView.

Another thing to check is that the markup is valid. I.e., there are no missing angle brackets, nothing outside the form tag. Nothing on a content page with a Master page that is outside of a content area. etc.


This can also happen when the page uses a masterpage and the ObjectDataSource is in the scope of a different asp:content control


DataSourceID should be the ID of a datasource control on your page. If you are binding in the codebehind then do not set the DatasourceID.


just remove this from the gridview :

DataSourceID="MyDataSource"

if you fill it from the codebehind


first goto App_Data and create xml file

  • 1-App_Data/ddlxmlFile.xml

  • 2-Get xmldatasource from toolbox and give same datasourceid name to xmldatasource ID=""

apply this in your code

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜