0

我知道下面的函数(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

4 回答 4

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

您也可以在前面添加DataValueFieldand DataTextFieldon lbxTablestherelbxTables.DataBind();

于 2012-09-12T21:00:10.640 回答
0

您是否尝试绑定 lbxTables 或 ddlDatabases?在上面,您没有将任何数据绑定到仅设置数据源的列表框。相反,请执行以下操作:

            lbxTables.DataSource = Database.GetTables(ddlServers.Text, ddlDatabases.Text);  
            lbxTables.DataTextField = "name";
            lbxTables.DataValueField = "name";  
            lbxTables.DataBind(); 
于 2012-09-12T20:58:56.863 回答
0

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

lbxTables.DataBind()
于 2012-09-12T20:59:06.317 回答
0

您正在尝试绑定下拉列表和列表框,但您需要为它们中的每一个绑定:

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

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

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

祝你有美好的一天,

于 2012-09-12T21:08:13.970 回答