C# ASP.NET设置GridView列的最大宽度大小
我正在VS2005上使用ASP.NETC 我有一个GridView表,其中有一列名为C# ASP.NET设置GridView列的最大宽度大小,c#,asp.net,gridview,C#,Asp.net,Gridview,我正在VS2005上使用ASP.NETC 我有一个GridView表,其中有一列名为Description,由于输入总是很长,所以描述在水平方向上很长 我希望GridView对所有列都有一个最大宽度大小 我试过很多方法,但都不管用 ItemStyle Width=“50px” HeaderStyle BorderWidth=“50px” HeaderStyle Width=“50px” RowStyle Width=“50px” Width=“50px” 下面是my GridView的代码片段:
Description
,由于输入总是很长,所以描述在水平方向上很长
我希望GridView对所有列都有一个最大宽度大小
我试过很多方法,但都不管用
ItemStyle Width=“50px”
HeaderStyle BorderWidth=“50px”
HeaderStyle Width=“50px”
RowStyle Width=“50px”
Width=“50px”
下面是my GridView的代码片段:
<asp:GridView ID="GridView1" AutoGenerateEditButton="True" ondatabound="gv_DataBound" runat="server" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="UserSelector" OnCheckedChanged="UserSelector_CheckedChanged" ondatabound="gv_DataBound" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
有人知道如何根据我的情况调整GridView列的大小吗?我更改了代码,这就是你想的吗
<RowStyle Width="150px"/>
把所有的藏品都拿走
<asp:TemplateField><ItemTemplate> </ItemTemplate></asp:TemplateField>
使用简单的
<columns> </columns>
在这里,我想你的代码将如何看起来像AutoGenerateColumns=“真”或“假”并不重要
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" DataSourceID="SqlDataSource1">
<Columns>
<asp:CheckBox ID="UserSelector" OnCheckedChanged="UserSelector_CheckedChanged" ondatabound="gv_DataBound" runat="server" />
</Columns>
<RowStyle Width="150px"/>
</asp:GridView>
您可以处理
RowDataBound
事件
protected int widestData;
protected void GridView1_RowDataBound(object sender,
GridViewRowEventArgs e)
{
System.Data.DataRowView drv;
drv = (System.Data.DataRowView)e.Row.DataItem;
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (drv != null)
{
String catName = drv[1].ToString();
Response.Write(catName + "/");
int catNameLen = catName.Length;
if (catNameLen > widestData)
{
widestData = catNameLen;
GridView1.Columns[2].ItemStyle.Width =
widestData * 30;
GridView1.Columns[2].ItemStyle.Wrap = false;
}
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
widestData = 0;
}
查看此项以了解更多详细信息
如果您的gridview
autogeneratecolumns
属性设置为false,并且您正在创建自定义列
,那么您可以使用模板文件
在其中实现表
和Div
来控制列的宽度。这就是我控制列宽的方式
1.在标题中添加CSS
<style type="text/css">
.maxWidthGrid
{
max-width: 300px;
overflow: hidden;
}
</style>
@Thomos您好,您的方法可以应用于在asp选项卡中调用的列,对吗?如何将div实现为不在asp选项卡中,但在加载网页时会自动显示的列,因为我已将
AutoGenerateColumns
设置为true。如果我将其设置为false,如何在asp选项卡中创建这些列?出于任何原因,我必须使用“.maxWidthGrid td”使其保持不变,但这对我有效。这对我有效:
<asp:BoundField ItemStyle-CssClass="maxWidthGrid" DataField="ClientName" HeaderText="Client Name"
ReadOnly="True" SortExpression="ClientName" />