asp DataGrid не отображает строку кнопок - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь добавить строку кнопок в таблицу данных и показать ее в DataGrid, строки добавленной строки видны, но кнопки нет. Как добавить строку кнопки в DataTable в code-behind?

Вместо этого я пытался использовать представление списка, различные типы кнопок, шаблон в asp

kunden_view - этоDataGrid от asp

 kunden_entrys = new List<string[]>();
        while (reader.Read())
        {
            string[] row = new string[6];
            for (int i = 0; i < row.Length; i++)
            {
                row[i] = reader.GetValue(i).ToString();
            }
            kunden_entrys.Add(row);
        }
        DataTable dt = new DataTable();
        DataRow dr;

        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("Ansprechpartner", typeof(string));

        dt.Columns.Add("Drucker", typeof(LinkButton));


        for (int i = 0; i < kunden_entrys.Count; i++)
        {
            dr = dt.NewRow();
            dr[0] = kunden_entrys[i][0];
            dr[1] = kunden_entrys[i][1];

            LinkButton temp = new LinkButton();
            temp.ID = "Button" + i;
            temp.Text = "Drucker";
            temp.Click += drucker_button_click;
            temp.Width = 20;
            dr[3] = temp;


            dt.Rows.Add(dr);
        }

        DataView dv = new DataView(dt);

        kunden_view.DataSource = dv;
        kunden_view.DataBind();

Я ожидал, что в таблице в исходном коде веб-сайта есть пустая или лучше кнопка в

1 Ответ

0 голосов
/ 07 ноября 2019

Вы пытаетесь добавить LinkButton к источнику данных, вам нужно добавить его непосредственно в GV, более вероятно, в событии RowDataBound, что-то вроде этого:

kunden_view.OnRowDataBound += kunden_view_RowDataBound;

protected void kunden_view_RowDataBound(Object sender, GridViewRowEventArgs e)
{        
     if(e.Row.RowType == DataControlRowType.DataRow)
     {
         LinkButton temp = new LinkButton();
         temp.ID = "Button" + i;
         temp.Text = "Drucker";
         temp.Click += drucker_button_click;
         temp.Width = 20;
         e.Row.Cells[3].Controls.Add(temp);        
      }    
 }
...