【问题标题】:ASP.NET C# GridView.ShowHeader and other propertiesASP.NET C# GridView.ShowHeader 和其他属性
【发布时间】:2011-01-20 16:41:31
【问题描述】:

我正在使用一个 ASP.NET GridView 控件,它是在 SharePoint Web 部件上使用 C# 动态创建的。我在设置属性时遇到了一些麻烦。具体来说,ShowHeader 属性似乎被完全忽略了,它是这样设置的:

gv.ShowHeader = false;

这似乎与我以前使用过的 System.Web.UI.WebControls.DataGrid 配合得很好。我也遇到了许多其他属性的问题,例如 BorderColor、BorderWidth 等。但是,CellPadding 和 CellSpacing 在类似设置时工作得很好:

gv.CellPadding = 2;
gv.CellSpacing = 2;

我不明白问题出在哪里。这是我一直在使用的 DataGrid 代码,效果很好:

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds, "Specs");
DataSet flipped_ds = FlipDataSet(ds);
DataView dv = flipped_ds.Tables[0].DefaultView;
DataGrid outputGrid = new DataGrid();
outputGrid.DataSource = dv;
outputGrid.DataBind();
outputGrid.ShowHeader = false;
Controls.Add(outputGrid);

这是我为我的 GridView 替换的代码:

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds, "Bobst Specs");
DataSet flipped_ds = FlipDataSet(ds);
DataView dv = flipped_ds.Tables[0].DefaultView;
GridView gv = new GridView();
gv.DataSource = dv;
gv.DataBind();
gv.AutoGenerateColumns = true;
gv.CellPadding = 2;
gv.CellSpacing = 2;
gv.ShowHeader = false;
Controls.Add(gv);

感谢您提供的任何帮助!

【问题讨论】:

    标签: c# asp.net gridview datagrid


    【解决方案1】:

    你试过先设置 gv 属性再绑定吗?

    【讨论】:

    • 是的,我尝试在绑定语句之前设置所有这些,结果是一样的。
    • 玩了一会儿,我又回去尝试在绑定之前设置属性,结果成功了!我不知道我第一次做错了什么,但它现在正在工作。感谢您的帮助!
    【解决方案2】:

    3 种可能的解决方案 --尝试禁用AutoGeneratedColumns

                    gv.AutoGenerateColumns = false; 
    

    --尝试在设置任何属性之前先将控件添加到页面

    或者 --改为尝试数据表,看看它是否有效

                    SqlDataAdapter da = new SqlDataAdapter(); 
                    da.SelectCommand = cmd; 
                    DataTable dt= new DataTable();
                    dt.TableName = "Data";
                    da.Fill(dt); 
                    GridView gv = new GridView(); 
                    gv.DataSource = dt; 
                    gv.DataBind(); 
                    gv.AutoGenerateColumns = true; 
                    gv.CellPadding = 2; 
                    gv.CellSpacing = 2; 
                    gv.ShowHeader = false; 
                    Controls.Add(gv);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 2010-09-17
      • 2021-11-25
      相关资源
      最近更新 更多