asp.net c# - gridview行和列没有与文本排列

时间:2011-07-08 00:49:27

标签: c# asp.net html

我有一个从远程数据库导入数据的gridview,这个工作正常。数据填充,我可以很容易地操纵它。列的间距似乎存在问题。它们没有为所有文本提供足够的空间以适合每个单元格的一行(列的宽度似乎停在某一点,对于每一列都不相同)。这也会在每个单元格中添加大量额外空间,但文本只占用一行。

当我点击编辑按钮时,所有自动调整大小都非常完美,文本在一个单元格中排成一行,没有强制换行符。一旦我点击取消'然后返回到标准网格视图显示(即“编辑未点击”),调整大小/空间问题。

这是我的代码:

<asp:SqlDataSource ID="coverAllDataSource" runat="server"
                ConnectionString="Data Source=blah; Initial Catalog=blah; User Id=blah;              Password=blah"
                SelectCommand="SELECT * FROM blah"
                />
                Search by -&nbsp;
                <asp:DropDownList ID="ddlCoverAll" runat="server" Width="148px">
                </asp:DropDownList>
                <br /><br />
                <div style="overflow:auto;max-width:650px; max-height: 400px; border: 1px solid black">
                    <asp:GridView ID="coverAllGV" DataSourceID="coverAllDataSource" runat="server" 
                        BorderStyle="None" AllowSorting="True" 
                        AutoGenerateEditButton="True" CellPadding="0" DataMember="DefaultView" 
                        ShowFooter="True">
                        <AlternatingRowStyle BackColor="#FF9900" />
                        <EditRowStyle Wrap="False" />
                    </asp:GridView>
                </div>

所以我不完全确定为什么会这样,我的理解是gridview会自动调整列宽以适应特定列的最大文本体,但这似乎不能正常工作。为了使事情更加混乱,有时自动调整大小会选择根据列标题设置其宽度,但有时它会根据其中包含最大文本量的单元格来设置其宽度。

这么简单的事情要坚持下去,唉我无法解决这个问题而且我花了太多时间试图(尝试在没有div或外部css文件操作的空页面上构建gridview,等等......这可能太简单了。

无论如何,如果有人可以在仪式方向上指导我,那将非常感激。

提前致谢!

1 个答案:

答案 0 :(得分:2)

  

所有在一个单元格中排队,没有强制换行

如果您只想让文本停止换行,您可以使用一些CSS实现此目的。为GridView提供类似CssClass="gridview"的类名,然后在样式表中添加CSS规则,如:

.gridview td { white-space : nowrap; }

这将告诉表不包装表格单元格中的任何文本。如果您仍然遇到问题,请尝试从包装div中删除max-width或减小文字大小。

如果您希望能够设置每列的宽度,请手动将AutoGenerateColumns设置为false并添加具有指定宽度的列(您可以使用GUI或手动执行此操作aspx页面。)