繁体   English   中英

在后台代码中创建SqlDataSource时,如何将SqlDataSource引用到GridView控件中?

[英]How to refer SqlDataSource to GridView control, when SqlDataSource is created in code-behind?

在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的控件。

从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();
}

我以为命名sqlDataSource等于设置其ID,不是。 我必须显式设置SqlDataSource.ID = "SqlDataSource";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM