привязка gridview с двумя списками asp.net c # - PullRequest
0 голосов
/ 19 мая 2019

Я хочу связать один GridView с двумя значениями ListBox. Я успешно связал одно значение списка в GridView, но не знаю, как связать оба списка одновременно.

 DataTable dt = new DataTable();
    dt.Columns.Add("Menu", Type.GetType("System.String"));
    dt.Columns.Add("cost", Type.GetType("System.String"));
    foreach (ListItem lst in ListBox1.Items)
    {
        if (lst.Selected)
        {
            DataRow dr = dt.NewRow();
            dr["Menu"] = lst.Text;
            dt.Rows.Add(dr);
        }

       //GridView1.DataSource = dt;
        //GridView1.DataBind();
    }

также пробовал этот код, но он не работал

 DataTable dt1 = new DataTable();
    dt1.Columns.Add("Menu", Type.GetType("System.String"));
  //dt1.Columns.Add("cost", Type.GetType("System.String"));
    foreach (ListItem lst in ListBox1.Items)
    {
        if (lst.Selected)
        {
            DataRow dr1 = dt1.NewRow();
            dr1["Menu"] = lst.Text;
            String strQuery = "SELECT cost FROM menu where name = '" + ListBox1.SelectedValue + "'";
           // dr1["Cost"] = lst.Value;
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = strQuery;
            cmd.Connection = con;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt1);
            dt1.Rows.Add(dr1);
        }

        GridView2.DataSource = dt1;
        GridView2.DataBind();
    }

1 Ответ

0 голосов
/ 20 мая 2019

как то так будет работать,

    protected void Button1_Click(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Menu", Type.GetType("System.String"));
        dt.Columns.Add("cost", Type.GetType("System.String"));

        // capture selected item value for 1st listbox 
        foreach (ListItem lst in ListBox1.Items)
        {
            if (lst.Selected)
            {
                DataRow dr = dt.NewRow();
                dr["Menu"] = lst.Text;
                dt.Rows.Add(dr);
            }

        }

        // capture selected item value for 2nd listbox 
        foreach (ListItem lst in ListBox2.Items)
        {
            if (lst.Selected)
            {
                DataRow dr = dt.NewRow();
                dr["Menu"] = lst.Text;
                dt.Rows.Add(dr);
            }


        }

        // finally display the data to gridview 
        GridView1.DataSource = dt;
        GridView1.DataBind();


    }

Вы исходный код создаете логику для захвата значения только тогда, когда был выбран элемент списка, поэтому убедитесь, что вы выбрали оба элемента списка, тогда вы сможете захватить 2 строки в вашей таблице данных. enter image description here

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