我以前也遇到類似的問題,我使用了不同的解決方案:
1)總結你的GridView在一個div一個明確的寬度,確保水平滾動:
<div style="width:700px; overflow:auto; overflow-y:hidden;">
2)增加您的實際頁面的寬度。我已經使用了不同寬度的多個主頁,用於正常和更寬的內容,並據此繼承。
3)對於適當的列,將寬度設置爲小(如20-30px),並在GridView的RowDataBound事件中隱藏單元格文本內容。接下來,添加含有細胞的文字工具提示到細胞本身,可選設置背景色指示的內容和轉換<br/>
到Environment.NewLine
反之亦然:
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState != DataControlRowState.Edit)
{
if (e.Row.Cells[0].Text != "")
{
e.Row.Cells[0].ToolTip = e.Row.Cells[0].Text.Replace(Environment.NewLine, "<br/>");
e.Row.Cells[0].Text = "";
e.Row.Cells[0].BackColor = Color.Lavender;
}
}
}
我很欣賞這種方法可能不會幫助你的列標題是也是一個問題。
關於固定列,GridView控件沒有內置的功能,但您可以使用CSS稍微拉一下。我已經使用了一個名爲'locked'的類,它在RowDataBound中應用於GridView單元格,但效果因瀏覽器而異,而且看起來非常黑。
CSS
td.locked, th.locked
{
position:relative;
left:expression(this.offsetParent.scrollLeft-3);
}
C#
e.Rows.Cells [0] = .CssClass 「鎖定」;
我建議從這裏開始http://forums.asp.net/t/1120278.aspx或Google'asp.net中的凍結gridview列',然後嘗試根據您的要求自定義方法。