我的DropDownList
和1 Form
上有2 GridView
个。我希望GridView
根据DropDownList
s。
例如,一个DropDownList
包含名称,另一个包含日期。 DropDownList
都可以发回。因此,如果我从第一个DropDownList
中选择一个名称,则GridView
应根据该名称显示所有结果。同样,如果我从其他Date
中选择DropDownList
,则GridView
应根据日期显示结果。但我无法弄清楚如何绑定GridView
以响应2 DropDownList
。
BTW我将下拉列表和网格视图绑定到DataSource对象,后者从数据库中获取数据。
任何建议?
答案 0 :(得分:0)
如果您使用两个DataSource
从db中选择数据并将每个DropDownList
绑定到DataSouce
,那么它会更好更清洁。我尝试在我的ASP.NET应用程序中做你想要的但不幸的是我有错误:/
我唯一的解决办法就是不要在aspx文件中使用DropDownList
,但在SelectedItem
DataContext
事件中使用DataView
,那么你可以将两者绑定到如下所示DataSource
。我不确定,但是在使用新数据源之前,您必须在GridView
中使用null来重置protected void btPokaz_Click(object sender, EventArgs e)
{
DataClassesDataContext db = new DataClassesDataContext();
var DzieciGrupa = from p in db.Dzieckos
where p.Grupy.Numer == Convert.ToInt32(this.dropListGrupy.SelectedValue)
orderby p.Nazwisko
select new { p.Imie, p.Nazwisko };
if (DzieciGrupa.Count() == 0) this.Label1.Text = "W " + this.dropListGrupy.SelectedValue.ToString() + " grupie nie ma dzieci zapisanych!";
this.GridGrupy.DataSource = null;
this.GridGrupy.DataSource = DzieciGrupa;
// this.GridView1.DataSourceID = String.Empty;
this.GridGrupy.DataBind();
:
{{1}}
尝试并告诉说有效;)
答案 1 :(得分:0)
对于您的问题您应该为每个数据源创建dwo EDM类。在DDL选择事件中简单您选择的DataContext取决于用户在DDL中的选择。
示例:
protected void DDL_SelectedItem(object sender, EventArgs e) { TypeOfQueryData query = null;//you must know what type is data You query if(this.dropListGrupy.SelectedValue==someItemSelect) { DataClasses1DataContext db = new DataClasses1DataContext(); //query to get data from source query= from p in db.Dzieckos where p.Grupy.Numer == Convert.ToInt32(this.dropListGrupy.SelectedValue) orderby p.Nazwisko select new { p.Imie, p.Nazwisko }; } if(this.dropListGrupy.SelectedValue==otherItemSelect) { DataClasses2DataContext db = new DataClasses2DataContext(); query= from p in db.Dzieckos where p.Grupy.Numer == Convert.ToInt32(this.dropListGrupy.SelectedValue) orderby p.Nazwisko select new { p.Imie, p.Nazwisko }; } this.GridGrupy.DataSource = null; this.GridGrupy.DataSource = DzieciGrupa; // this.GridView1.DataSourceID = String.Empty;//maybe You need do that this.GridGrupy.DataBind();