首页 > 解决方案 > asp DataGrid 不显示按钮行

问题描述

我正在尝试在数据表中添加按钮行并将其显示在 DataGrid 中,添加的字符串行可见但没有按钮。如何在代码隐藏中的 DataTable 中添加按钮行?

我尝试使用列表视图、各种类型的按钮、asp 中的模板

kunden_view 是来自asp的DataGrid

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

我希望网站源代码中的表格有一个空的或更好的按钮

标签: c#asp.netcode-behind

解决方案


您尝试将其添加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);        
      }    
 }

推荐阅读