“GridView1”的 DataSourceID 必须是 IDataSource 类型的控件的 ID。未能找到 ID 为“SqlDataSource1”的控件。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: “GridView1”的 DataSourceID 必须是 IDataSource 类型的控件的 ID。未能找到 ID 为“SqlDataSource1”的控件。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[HttpException (0x80004005): “GridView1”的 DataSourceID 必须是 IDataSource 类型的控件的 ID。未能找到 ID 为“SqlDataSource1”的控件。]
   System.Web.UI.WebControls.DataBoundControl.GetDataSource() +1866717
   System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +34
   System.Web.UI.WebControls.DataBoundControl.OnLoad(EventArgs e) +16
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Control.LoadRecursive() +131
   System.Web.UI.Control.LoadRecursive() +131
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061 出现这个错误,怎么办?求救、、、谢谢啦

解决方案 »

  1.   

    去掉GridView的这个属性---DataSourceID
      

  2.   

        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server">
            </asp:GridView>
        </div>
        </form>
        protected void Page_Load(object sender, EventArgs e)
        {
            var list = new[] { 
                new{id=1,Name="11"},
                new{id=2,Name="22"},
                new{id=3,Name="33"},
                new{id=4,Name="44"},
                new{id=5,Name="55"}
            };
            GridView1.DataSource = list;
            GridView1.DataBind();
        }
      

  3.   

    说白了那个Id就是数据源,就是你sql语句中的唯一标识