【问题标题】:How to refer SqlDataSource to GridView control, when SqlDataSource is created in code-behind?在代码隐藏中创建 SqlDataSource 时,如何将 SqlDataSource 引用到 GridView 控件?
【发布时间】:2017-10-29 15:15:06
【问题描述】:

在我的aspx页面中:

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

在代码隐藏页面中:

protected void Page_Load(object sender, EventArgs e)
{
    SqlDataSource1.ConnectionString = System.Configuration.ConfigurationManager
    .AppSettings["MyConnectionString"];
    SqlDataSource1.SelectCommand = "SELECT * FROM my_table_name";
    this.Controls.Add(SqlDataSource1);
}

这会引发服务器错误:

GridView1”的 DataSourceID 必须是 IDataSource 类型的控件的 ID。找不到 ID 为“SqlDataSource1”的控件。

【问题讨论】:

    标签: c# asp.net gridview webforms sqldatasource


    【解决方案1】:

    我认为命名 sqlDataSource 等于设置它的 ID,它不是。我必须明确设置SqlDataSource.ID = "SqlDataSource";

    【讨论】:

      【解决方案2】:

      从 aspx 中删除数据源 id

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

      通过代码实现

      protected void Page_Load(object sender, EventArgs e)
      {
          SqlDataSource1.ConnectionString = System.Configuration.ConfigurationManager
          .AppSettings["MyConnectionString"];
          SqlDataSource1.ID = "SqlDataSource1";
          this.Page.Controls.Add(SqlDataSource1);
          SqlDataSource1.SelectCommand = "SELECT * FROM my_table_name";
          GridView1.DataSource = SqlDataSource1;
          GridView1.DataBind();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-15
        • 1970-01-01
        • 2017-01-27
        • 1970-01-01
        • 2013-07-25
        • 2012-03-08
        相关资源
        最近更新 更多