2013-12-17 52 views
0

我想根据在下拉菜单中所做的选择来填充列表视图。基于下拉选择填充列表视图c#

下拉菜单中有类别列表,我希望列表视图显示该类别的所有影片。所有这些信息都在mysql数据库中。

我有两个下拉菜单来实现这一点,但因为我得到了以下错误的代码不使用ListView工作: “System.Web.UI.WebControls.ListView”不包含一个定义为“DataValueField”并且没有找到接受类型'System.Web.UI.WebControls.ListView'的第一个参数的扩展方法'DataValueField'(您是否缺少使用指令或程序集引用?)和相同的错误,但将'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(); 
     } 
    } 

代码列表视图:

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控件没有DataValueFieldDataTextField属性。我认为你在下拉列表中混淆了这一点,你可以在那里设置这些值。

从代码中删除他们,就像这样:

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查询返回的,那么它会在你的列表中显示的唯一领域视图。

相关问题