Использование раскрывающегося списка для изменения GridView в asp.net

Вот мой код:

protected void Page_Load(object sender, EventArgs e)
{


}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    connection db_obj1 = new connection();
    SqlConnection sql_obj = db_obj1.Connect();
    if (this.DropDownList1.SelectedIndex >= 0)
    {
        string brand = DropDownList1.Items[DropDownList1.SelectedIndex].ToString();

        string query = "Select Product,Model, NetPrice, Cost, Profit from products where Brand='" + brand + "'";

        // SqlDataReader query_read = query.ExecuteReader();

        SqlDataAdapter adapter = new SqlDataAdapter();
        SqlCommand command = new SqlCommand(query, sql_obj);
        //    cmd.Parameters.AddWithValue("@tab",);
        DataTable table = new DataTable();
        adapter.SelectCommand = command;
        adapter.Fill(table);
        //  Response.Write(dt.Rows.Count.ToString());

        GridView grd = new GridView();
        grd.FindControl("GridView1");


        grd.DataSource = table;
        grd.DataBind();


    }


}

Проблема в том, что когда я запускаю код, я вижу только раскрывающийся список и не вижу GridView, даже когда я выбираю другие параметры. Я пробовал отладку, и кажется, что таблица ДЕЙСТВИТЕЛЬНО заполняется, и единственная проблема, которая, как мне кажется, находится в строке 'grd.FindControl ("GridView1"). Это правильный способ предоставить сетке источник данных?


person CMWasiq    schedule 30.11.2013    source источник
comment
И я не понимаю, почему я не могу получить доступ к GridView1 прямо здесь. Это легко решило бы мою проблему   -  person CMWasiq    schedule 30.11.2013
comment
Разве вы не можете использовать смесь jquery и ajax?   -  person Kamran Ahmed    schedule 30.11.2013
comment
это раскрывающийся список в сетке?   -  person Sajad Karuthedath    schedule 30.11.2013
comment
что вы делаете с объектом вида сетки grd.   -  person शेखर    schedule 30.11.2013
comment
Разместите свою разметку. Похоже, вы забыли добавить сетку.   -  person afzalulh    schedule 30.11.2013


Ответы (1)


По моему мнению, вы не должны использовать подобное

string brand = DropDownList1.Items[DropDownList1.SelectedIndex].ToString();

от имени, которые пытаются, как показано ниже

string brand = DropDownList1.SelectedItem.Text;

после этого запустите запрос. Я надеюсь, что это будет наполовину.

После редактирования теперь используйте этот код

    string query = "Select Product,Model, NetPrice, Cost, Profit from products where Brand='" + brand + "'";


    SqlDataAdapter adapter = new SqlDataAdapter();
    SqlCommand command = new SqlCommand(query, sql_obj);
    //    cmd.Parameters.AddWithValue("@tab",);
    DataSet ds = new DataSet();
    DataTable table;
    adapter.SelectCommand = command;
    adapter.Fill(ds, "ABC");
    table = ds.Tables["ABC"];
    //  Response.Write(dt.Rows.Count.ToString());

    GridView grd = new GridView();
    grd.FindControl("GridView1");


    grd.DataSource = table;
    grd.DataBind();

Объяснение

    adapter.Fill(ds, "ABC");

здесь ABC - временное имя таблицы, за которую можно взять что угодно.

table = ds.Tables["ABC"];

и напишите здесь то же имя таблицы, что и вы взяли имя временной таблицы. теперь попробуйте.

person Govinda Rajbhar    schedule 30.11.2013
comment
Это только изменило синтаксис. Это совсем не решило мою проблему - person CMWasiq; 30.11.2013