Создание ответа GridView на 2 выпадающих списка - PullRequest
1 голос
/ 11 марта 2010

У меня 2 DropDownList с на Form и 1 GridView. Я хочу, чтобы GridView отображал данные в соответствии с выбором из DropDownList s.

Например, один DropDownList содержит имена, а другой - даты. Обе DropDownList могут отправить обратно. Поэтому, если я выберу имя из 1-го DropDownList, GridView должен показать все результаты в соответствии с этим именем. Аналогично, если я выберу Date из другого DropDownList, GridView должен показать результаты в соответствии с датами. Но я не могу понять, как связать GridView, чтобы ответить на 2 DropDownList.

Кстати, я связываю и раскрывающиеся списки, и представление таблицы с объектами источников данных, которые получают данные из базы данных.

Любые предложения ??

Ответы [ 2 ]

0 голосов
/ 13 марта 2010

Для вашей проблемы Вы должны создать класс 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();
0 голосов
/ 11 марта 2010

Лучше и чище, если вы используете два DataSource с выбором данных из базы данных и связыванием каждого из них с DropDownList.Я пытался в своем приложении ASP.NET делать то, что вы хотите, но, к сожалению, у меня есть ошибки: /

Мое единственное решение - не использовать DataSouce в файле aspx, но в событии DropDownList SelectedItemиспользуйте DataContext и возможно, что тогда вы сможете привязать оба к одному и тому же DataView, как показано ниже.Я не уверен, но, возможно, вы должны использовать null в DataSource для сброса GridView, прежде чем использовать новый источник данных:

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();

Попробуйте и скажите, что работает;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...