【问题标题】:ASP.NET DropDownList IssueASP.NET 下拉列表问题
【发布时间】:2009-09-07 10:51:07
【问题描述】:
[...]
public DataSet ReturnPromoMagazinesDs()
{

    MySql.Data.MySqlClient.MySqlConnection mysqlConnection = new MySql.Data.MySqlClient.MySqlConnection(this.connectionString);

    MySql.Data.MySqlClient.MySqlCommand mysqlCommand = new MySql.Data.MySqlClient.MySqlCommand("SELECT id, magazine_name FROM `magazines`", mysqlConnection);

    MySql.Data.MySqlClient.MySqlDataAdapter mysqlAdaptor = new MySql.Data.MySqlClient.MySqlDataAdapter(mysqlCommand);

    DataSet ds = new DataSet();

    mysqlAdaptor.Fill(ds, "magazines");

    return ds;
}

[...]
protected void Page_Load(object sender, EventArgs e)
{
        DataSet ds = new DataSet();
        ds = coreObject.ReturnPromoMagazinesDs();

        DropDownList1.DataSource = ds;
        DropDownList1.DataTextField = ds.Tables["magazines"].Columns["magazine_name"].ColumnName;
        DropDownList1.DataValueField = ds.Tables["magazines"].Columns["id"].ColumnName;
        DropDownList1.DataBind();

}

[...]
<asp:dropdownlist id="DropDownList1" runat="server"></asp:dropdownlist>

上面的代码可以正常工作,直到我获取始终为 1 的 DropDownList1.SelectedValue (表中的第一个值)。表中的值不是这件事的罪魁祸首,如果我手动将项目添加到 DropDownList,一切正常。什么会导致这种情况?

【问题讨论】:

    标签: c# asp.net mysql


    【解决方案1】:

    将Page_Load方法中的所有代码都包装在下面是否正常工作:

    if (!IsPostBack) { /* Code as in the original post */ }
    

    【讨论】:

      【解决方案2】:

      不确定是否在翻译中丢失了某些内容,但您可以简化以下几行,即使它不能解决问题。

      DropDownList1.DataTextField = "magazine_name";
      
      DropDownList1.DataValueField = "id";
      

      【讨论】:

      • 两种方式都会导致相同的结果。即使我在 droptdownlist.datasource = ds 之前或之后使用 dropdown.datetextfiel = "myfield" 和 dropdown.datatextvaluefield = "id";
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 2023-03-13
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 2012-06-19
      相关资源
      最近更新 更多