Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动生成的Gridview-更改列宽_C#_Asp.net_Gridview_Code Behind - Fatal编程技术网

C# 自动生成的Gridview-更改列宽

C# 自动生成的Gridview-更改列宽,c#,asp.net,gridview,code-behind,C#,Asp.net,Gridview,Code Behind,我有麻烦了 我以dinamic方式生成了很多GridView,并将dinamic值添加到列中。 这些列永远是一样的 我想知道如何设置此列的大小 这是我的代码,用我的努力 private void generateControls( List<List<DataRow>> grids) { DataTable dt = new DataTable(); int i = 0; foreach (List<

我有麻烦了

我以dinamic方式生成了很多GridView,并将dinamic值添加到列中。 这些列永远是一样的

我想知道如何设置此列的大小

这是我的代码,用我的努力

    private void generateControls( List<List<DataRow>> grids)
    {
        DataTable dt = new DataTable();

        int i = 0;
        foreach (List<DataRow> lst in grids)
        {
            dt = lst.CopyToDataTable();

            GridView grv = new GridView();
            grv.AlternatingRowStyle.BackColor = System.Drawing.Color.FromName("#cccccc");
            grv.HeaderStyle.BackColor = System.Drawing.Color.Gray;

            grv.Width = new Unit("100%");
            //grv.RowStyle.Wrap = false;
            grv.RowStyle.Width = new Unit("100%");

            grv.ID = "grid_view" + i;
            grv.DataSource = dt;
            grv.DataBind();

          /*  grv.Columns[0].ItemStyle.Width = new Unit("5%");
            grv.Columns[1].ItemStyle.Width = new Unit("7%");
            grv.Columns[2].ItemStyle.Width = new Unit("12%");
            grv.Columns[3].ItemStyle.Width = new Unit("12%");
            grv.Columns[4].ItemStyle.Width = new Unit("7%");
            grv.Columns[5].ItemStyle.Width = new Unit("7%");
            grv.Columns[6].ItemStyle.Width = new Unit("23%");
            grv.Columns[7].ItemStyle.Width = new Unit("22%");
            grv.Columns[8].ItemStyle.Width = new Unit("5%");*/

            Label lblBlankLines = new Label();
            lblBlankLines.Text = "<br />";

            Panel panelGrid = new Panel();
            panelGrid.ID = "panel_grid" + i;


            Label lblTipo = new Label();
            string tipoOcorrencia = lst[0]["Ocorrência"].ToString();

           /* 
            * Capitalized
            * TextInfo myTI = new CultureInfo("pt-BR", false).TextInfo;

            string novoTipoOcorrencia = myTI.ToTitleCase(tipoOcorrencia);*/

            int quantidade = lst.Count;
            lblTipo.Text = " - " + tipoOcorrencia + ": " + quantidade;


            LinkButton lkBtn = new LinkButton();
            lkBtn.ID = "link_button" + i;
            lkBtn.Text = "Exibir | Ocultar";
            lkBtn.Attributes["onClick"] = "javascript:return ocultaGrid('" + panelGrid.ID + "'), false";

            panel_status.Controls.Add(lblBlankLines);
            panel_status.Controls.Add(lkBtn);
            panel_status.Controls.Add(lblTipo);


            panelGrid.Controls.Add(grv);

            panel_status.Controls.Add(panelGrid);

            panel_status.DataBind();

            i++;
        }
    }
private void generateControls(列表网格)
{
DataTable dt=新的DataTable();
int i=0;
foreach(在网格中列出lst)
{
dt=lst.CopyToDataTable();
GridView grv=新的GridView();
grv.AlternatingRowStyle.BackColor=System.Drawing.Color.FromName(“#CCCC”);
grv.HeaderStyle.BackColor=System.Drawing.Color.GRY;
grv.宽度=新单位(“100%”);
//grv.RowStyle.Wrap=false;
grv.RowStyle.Width=新单位(“100%”);
grv.ID=“网格视图”+i;
grv.DataSource=dt;
grv.DataBind();
/*grv.Columns[0].ItemStyle.Width=新单位(“5%”);
grv.Columns[1].ItemStyle.Width=新单位(“7%”);
grv.Columns[2].ItemStyle.Width=新单位(“12%”);
grv.Columns[3].ItemStyle.Width=新单位(“12%”);
grv.Columns[4].ItemStyle.Width=新单位(“7%”);
grv.Columns[5].ItemStyle.Width=新单位(“7%”);
grv.Columns[6].ItemStyle.Width=新单位(“23%”);
grv.Columns[7].ItemStyle.Width=新单位(“22%”);
grv.Columns[8].ItemStyle.Width=新单位(“5%”)*/
Label lblBlankLines=新标签();
lblBlankLines.Text=“
”; Panel panelGrid=新面板(); panelGrid=“panel_grid”+i; Label lblTipo=新标签();
字符串tipoOcorrencia=lst[0][“Ocorrência”].ToString(); /* *资本化 *TextInfo myTI=新文化信息(“pt BR”,false); 字符串novotipoorrencia=myTI.ToTitleCase(tipoorrencia)*/ int quantidade=一次计数; lblTipo.Text=“-”+tipocorrencia+”:“+quantidade; LinkButton lkBtn=新建LinkButton(); lkBtn.ID=“链接按钮”+i; lkBtn.Text=“Exibir | Ocultar”; lkBtn.Attributes[“onClick”]=“javascript:return ocultaGrid(““+panelGrid.ID+”),false”; 面板状态控件添加(lblBlankLines); 面板状态控件添加(lkBtn); 面板状态控件添加(lblTipo); panelGrid.Controls.Add(grv); panel_status.Controls.Add(panelGrid); 面板_status.DataBind(); i++; } }
我试图获取列,但出现错误,告诉我索引访问无效。
如何访问该gridview中的列?

使用RowDataBound EventHandler:

计算索引并确保您没有试图访问不存在的列

有关示例,请参见链接:

grv.ROWDABOUND+=grv_ROWDABOUND

    private void grv_RowDataBound(object sender, GridViewRowEventArgs e)
    {

        if (e.Row.RowType == DataControlRowType.Header)
        {

                   e.Row.Cells[0].Width = new Unit("5%");
                   e.Row.Cells[1].Width = new Unit("7%");
                   e.Row.Cells[2].Width = new Unit("12%");
                   e.Row.Cells[3].Width = new Unit("12%");
                   e.Row.Cells[4].Width = new Unit("7%");
                   e.Row.Cells[5].Width = new Unit("7%");
                   e.Row.Cells[6].Width = new Unit("23%");
                   e.Row.Cells[7].Width = new Unit("22%");
                   e.Row.Cells[8].Width = new Unit("5%"); 
        }

    }

字符串tipoOcorrencia=lst[0][“Ocorrência”].ToString();我不会在编程中使用这样的字符“ê”。把它改成一个简单的“e”,看看会发生什么。另外,一定要告诉你在哪一行发生了错误。它是有效的!!!你真的救了我一天!只是为了改进,如果您已将任何值设置为“grv.RowStyle.Width”,则必须将其删除才能正常工作。=)