我已经为网格视图设置了一个固定的宽度。现在我要做的下一件事是为网格视图中的所有列设置固定宽度。我已经尝试了以下所有选项,但它们都没有工作。如果这个问题得到解决将会很棒。
1)将所有BoundFields的ItemStyle-Width设置为100px
<asp:BoundField DataField="Customer_Name" HeaderText="Customer" SortExpression="Customer_Name" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="100px"/>
2)在RowDataBound事件中定义列宽
protected void RPMData_RowDataBound(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
RPMData.Columns[0].ItemStyle.Width = 150;
RPMData.Columns[1].ItemStyle.Width = 150;
RPMData.Columns[2].ItemStyle.Width = 150;
RPMData.Columns[3].ItemStyle.Width = 150;
RPMData.Columns[4].ItemStyle.Width = 150;
RPMData.Columns[5].ItemStyle.Width = 150;
RPMData.Columns[6].ItemStyle.Width = 150;
RPMData.Columns[7].ItemStyle.Width = 150;
RPMData.Columns[8].ItemStyle.Width = 150;
RPMData.Columns[9].ItemStyle.Width = 150;
}
}
3)定义css并在RowDataBound事件中调用css
源代码: -
.columnwidth {
width: 150px;
}
代码背后:
protected void RPMData_RowDataBound(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
for (int i = 0; i > e.Row.Cells.Count; i++) {
e.Row.Cells[i].CssClass = "columnwidth";
}
}
}
为gridview定义的CSS:
.infoTable {
font-size: 11px;
border: #ccc 1px solid;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
font-family:Arial;
width:50% !important;
}
答案 0 :(得分:0)
尝试重要的css;
<style type="text/css">
.columnwidth
{
width: 150px!important;
}
</style>
答案 1 :(得分:0)
问题可能是长字比150px宽,会增加宽度。使用word-break: break-all;
<style>
#<%= RPMData.ClientID %> td {
width: 150px;
word-break: break-all;
}
</style>
并且不要将GridView的宽度设置为100%(如果已经这样做了)
答案 2 :(得分:0)
问题得到了解决。我主要是试图限制我的网格视图宽度而导致问题。感谢@VDWWD部分解决了我的问题。我刚刚删除了网格视图宽度的限制并添加了简单的ItemStyle我的绑定字段的-Width标记,这解决了它......:)