2013-12-20 8 views
0

Проблема с заполнением определенных значений выпадающего списка из базы данных, я хочу показать пользователю все текущие данные из таблиц базы данных, чтобы позволить им вносить изменения, но я не вижу конкретного раскрывающегося списка, выбранного пользователем до. Im, используя linqdatasource, чтобы показать все значения dropdownlist.Population dropdownlist с datareader из базы данных

public partial class Update : System.Web.UI.Page 
{ 
    string cs = Global.CS;  
    DataClasses1DataContext db = new DataClasses1DataContext(); 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) // only during initial load 
     { 
      string id = Request.QueryString["Item_ID"] ?? ""; 

      string sql = "Select * FROM MenuItem WHERE Item_ID = @id"; 


      SqlConnection con = new SqlConnection(cs); 
      SqlCommand cmd = new SqlCommand(sql, con); 

      cmd.Parameters.AddWithValue("@Id", id); 

      con.Open(); 
      SqlDataReader dr = cmd.ExecuteReader(); 

      if (dr.Read()) 
      { 
       if ((string)dr["Category"] == "Breakfast" || (string)dr["Category"] == "Lunch" || (string)dr["Category"] == "Dinner") 
       { 
        DataBind(); 
        lblId.Text = (string)dr["Item_ID"].ToString(); 
        txtItemName.Text = (string)dr["ItemDesc"]; 
        txtPrice.Text = (string)dr["Price"].ToString(); 
        ddlCategory.Text = (string)dr["Category"]; 




         //foreach (var checking in db.Sets) 
         //{ 
         // string setID = checking.Set_ID.ToString(); 
         // if (setID == (string)dr["Item_ID"]) 
         // { 
         //  ddlAlacarte.DataSourceID = "ldsAlacarte"; 
         //  **ddlAlacarte.DataTextField = (string)dr["ItemDesc"].ToString(); 
         //  ddlAlacarte.DataValueField = (string)dr["Item_ID"].ToString();** 
         // } 
         //}        




       } 
       else 
       { 
        ddlAlacarte.Enabled = false; 
        ddlBeverage.Enabled = false; 
        ddlSide.Enabled = false; 
        DataBind(); 

        lblId.Text = (string)dr["Item_ID"].ToString(); 
        txtItemName.Text = (string)dr["ItemDesc"]; 
        txtPrice.Text = (string)dr["Price"].ToString(); 
        ddlCategory.Text = (string)dr["Category"]; 


       } 
      } 
      else 
      { 
       Response.Redirect("MenuAdmin.aspx"); 
      } 
      DataBind(); 
      dr.Close(); 
      con.Close(); 
     } 
    } 
    protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (ddlCategory.SelectedItem.Text == "Breakfast" || ddlCategory.SelectedItem.Text == "Lunch" || ddlCategory.SelectedItem.Text == "Dinner") 
     { 
      ddlAlacarte.Enabled = true; 
      ddlBeverage.Enabled = true; 
      ddlSide.Enabled = true; 
      DataBind(); 
     } 
     else 
     { 
      ddlAlacarte.Enabled = false; 
      ddlBeverage.Enabled = false; 
      ddlSide.Enabled = false; 
      DataBind(); 
     } 
    } 

} 

ответ

0

Я хотел бы использовать что-то вроде этого

dropDownList.Items.Add(
    new ListItem(){ Text = dr["Breakfast"], Value = dr["Breakfast"] } 
); 

и перебирать, заселение выпадающий список. Это то, что вы хотите ?

1

Вам нужно добавить элементы в раскрывающийся список при чтении значений.

Добавить следующий код во время чтения значений с помощью SqlDataReader.

while(dr.Read()) 
{ 
    ListItem listItem = new ListItem(); 

    listItem.Text = dr["Category"].ToString(); 
    listItem.Value = dr["Category"].ToString(); 

    categoryDropDownList.Items.Add(listItem); 
} 
Смежные вопросы