我有以下代码。我没有在gridview中定义任何边界字段。我正在使用我的aspx.cs文件中的sql查询来检索数据。是否可以调整每列0,1,2的宽度?我有什么办法可以研究吗?我尝试了很多方法,但它仍然无法正常工作。请帮忙!
<asp:GridView ID="surgicalGridView" runat="server"
CaptionAlign="Top" HorizontalAlign="Justify"
DataKeyNames="id" onselectedindexchanged="surgicalGridView_SelectedIndexChanged"
ToolTip="Excel File Download Tool" CellPadding="4" ForeColor="#333333"
GridLines="None" Width="854px">
<RowStyle BackColor="#E3EAEB" />
<Columns>
<asp:CommandField ShowSelectButton="True" SelectText="Download"
ControlStyle-ForeColor="Blue">
<ControlStyle ForeColor="Blue"></ControlStyle>
</asp:CommandField>
</Columns>
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#7C6F57" />
<AlternatingRowStyle BackColor="White" />
<SortedAscendingCellStyle BackColor="#F8FAFA" />
<SortedAscendingHeaderStyle BackColor="#246B61" />
<SortedDescendingCellStyle BackColor="#D4DFE1" />
<SortedDescendingHeaderStyle BackColor="#15524A" />
</asp:GridView>
<br />
答案 0 :(得分:5)
您可以在OnRowDataBound
的{{1}}事件中执行此操作。
gridview
将此添加到您的protected void surgicalGridView_RowDataBound(object o, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Width = new Unit("200px");
e.Row.Cells[1].Width = new Unit("400px");
// and so on
}
}
标记
Gridview
答案 1 :(得分:0)
网格呈现为table
tr
和dt
,因此您可以将css类用于网格。
在那里,您可以设置列的宽度
在类中,您可以使用td
,td+td
,td+td+td
等
根据帖子
.NET Gridview themes examples
查看这些链接。
http://icant.co.uk/csstablegallery/index.php?css=69#r69
http://mattberseth2.com/demo/有许多gridview自定义代码下载。
更多主题
http://mattberseth2.com/demo/Default.aspx?Name=A+YUI+DataTable+Styled+GridView&Filter=All http://mattberseth.com/blog/2007/11/5_gridview_themes_based_on_goo.html
答案 2 :(得分:0)
我的解决方案如下。我有一个网格,有2个已定义的列,其余的动态绑定。我不知道为什么用(e.Row.Cells [0] .Width = new Unit(“200px”);)设置列不起作用,但我找到了另一种选择。此外,我的网格已启用排序,因此链接按钮代码。
const int FirstControl = 0;
const int GriDefinedFieldsCount = 2;
protected void grd_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
int col = 0;
foreach (DataColumn dc in SiteManager.Reports.ReportData.Columns)
{
if (dc.ColumnName == "Notes")
{
LinkButton lnk = (e.Row.Cells[col + GriDefinedFieldsCount].Controls[FirstControl] as LinkButton);
lnk.Width = Unit.Pixel(300);
}
col += 1;
}
}