如何从数据源填充ASP .NET中的列表框?

时间:2012-09-12 20:55:55

标签: c# asp.net listbox datasource

我知道以下函数(Database.GetTables)带回了我想要的值。但是,当我尝试绑定到列表框时,没有任何内容填充它。我错过了什么吗?从数据源填充列表框的正确方法是什么?

protected void ddlDatabase_SelectedIndexChanged(object sender, EventArgs e)
{
     if (ddlDatabases.SelectedIndex != 0)
            {
                lbxTables.DataSource = Database.GetTables(ddlServers.Text, ddlDatabases.Text);
                ddlDatabases.DataValueField = "name";
                ddlDatabases.DataBind();
            }
        }

我也尝试过:

ddlDatabases.DataTextField = "name";

没有运气。

4 个答案:

答案 0 :(得分:2)

首先在列表框控件上设置DataSource,但最后在下拉菜单中调用DataBind。

试试这个:

protected void ddlDatabase_SelectedIndexChanged(object sender, EventArgs e)
{
    if (ddlDatabases.SelectedIndex != 0)
    {
        lbxTables.DataSource = Database.GetTables(ddlServers.Text, ddlDatabases.value);
        lbxTables.DataBind();
    }
}

您还可以在DataValueField之前添加DataTextField lbxTables lbxTables.DataBind(); {/ 1}}

答案 1 :(得分:0)

您是否尝试绑定lbxTables或ddlDatabases?上面你没有将任何数据绑定到仅设置数据源的列表框。相反,这样做:

            lbxTables.DataSource = Database.GetTables(ddlServers.Text, ddlDatabases.Text);  
            lbxTables.DataTextField = "name";
            lbxTables.DataValueField = "name";  
            lbxTables.DataBind(); 

答案 2 :(得分:0)

要获取显示列表框的值,您必须添加

lbxTables.DataBind()

答案 3 :(得分:0)

您正在尝试绑定下拉列表和列表框,但您需要将每个列表绑定到:

  1. 设置数据源(Database.GetTables(ddlServers.Text,ddlDatabases.Text);)。

  2. 为需要绑定到数据源的每个控件调用Control.Databind()(这意味着一个用于下拉列表,一个用于列表框)

  3. 可选,设置数据值和数据文本字段。

  4. 祝你有个美好的一天,

相关问题