2013-12-17 5 views
0

Я пытаюсь заполнить список, основанный на выборе, сделанном в выпадающем меню.Заполнение списка на основе выбора выпадающего списка C#

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

я достиг этого с двумя раскрывающимися меню, но код не работает с ListView, потому что я получаю следующие ошибки: «System.Web.UI.WebControls.ListView» не содержит определение для «DataValueField» и не может быть найден метод расширения 'DataValueField', принимающий первый аргумент типа 'System.Web.UI.WebControls.ListView' (вам не хватает директивы using или ссылки на сборку?) и та же ошибка, но вместо «DataValueField» с 'DataTextField'.

Код для выпадающего списка:

public void ddl_Cat() 
    { 
     if (!Page.IsPostBack) 
     { 
      MySqlCommand sql_Category = new MySqlCommand("SELECT DISTINCT(Category) FROM DVD", cs); 
      cs.Open(); 

      MySqlDataReader ddlgetcat; 
      ddlgetcat = sql_Category.ExecuteReader(); 

      ListViewCat.DataSource = ddlgetcat; 
      ListViewCat.DataValueField = "Category"; 
      ListViewCat.DataTextField = "Category"; 
      ListViewCat.DataBind(); 
      cs.Close(); 
      cs.Dispose(); 
     } 
    } 

Код для ListView:

protected void ListViewCat_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string categorySelection = ddlCategory.SelectedValue; 
     string available = string.Empty; 
     { 
      MySqlCommand cd_available = new MySqlCommand(String.Format("SELECT * FROM DVD WHERE (Cateogry) ='{1}' and (Title) ='{0}'", ddlCategory.SelectedItem.ToString().Trim(), categorySelection), cs); 
      cs.Open(); 
      available = Convert.ToString(cd_available.ExecuteScalar()); 
      cs.Close(); 
      cs.Dispose(); 
     } 
    } 

Может кто-нибудь помочь мне исправить этот код предоставить альтернативу этому методу? Спасибо

ответ

2

Так же, как ошибка говорит, контроль ListView не имеет DataValueField или DataTextField собственности. Я думаю, вы путаете это с выпадающим списком, где вы можете установить эти значения.

Удалите их из кода, как это:

public void ddl_Cat() 
{ 
    if (!Page.IsPostBack) 
    { 
     MySqlCommand sql_Category = new MySqlCommand("SELECT DISTINCT(Category) FROM DVD", cs); 
     cs.Open(); 

     MySqlDataReader ddlgetcat; 
     ddlgetcat = sql_Category.ExecuteReader(); 

     ListViewCat.DataSource = ddlgetcat; 
     ListViewCat.DataBind(); 
     cs.Close(); 
     cs.Dispose(); 
    } 
} 

Примечание: Поскольку Category единственное поле возвращения из SELECT DISTINCT запроса, то это будет единственное поле показано в списке Посмотреть.

Смежные вопросы