使用Gridview并获取可滚动的单元格?

时间:2017-09-18 13:04:40

标签: css asp.net gridview

我正在使用Gridview,我想让单元格可滚动。我已经有一个div滚动整个表格,但我需要将单个单元格保持在一定的最大宽度,并为具有超过该数据的单元格创建滚动条。

我尝试添加<rowstyle Wrap="false"/>这使数据停止换行,这是我想要的,但现在行非常宽。我不想要的。

我找到了一些建议,说我在div附近添加了Gridview并添加了overflow-x:auto;width:200px;这样的css规则,这对单元格仍然非常宽。

我有这样的Gridview设置:

<asp:GridView ID="PMDataGrid"
    datasourceid="PMDataSource"
    ondatabound="PMDataGrid_DataBound"
    autogeneratecolumns="false"
    emptydatatext="No Data Available"
    allowpaging="true"
    pagesize="25"
    runat="server" 
    showheader="true"
    showfooter="true"
    DataKeyNames="PROJECT"
    allowsorting="true"
    style="overflow-x:auto"
    headerstyle-cssclass="FixedHeader">
    <HeaderStyle BackColor="Black" ForeColor="White" />
    <FooterStyle BackColor="Black" ForeColor="White" />
    <RowStyle BackColor="White" ForeColor="Black" height="50px" Wrap="false" Width="250px" />
    <AlternatingRowStyle BackColor="#e5e5e5" ForeColor="Black" height="50px" />
    <SelectedRowStyle BackColor="#999999" ForeColor="#fff" />

我希望最大宽度为250px,并且当数据太长时会有滚动条,但我无法找到解决方案。我对asp.net中的网络应用程序还不熟悉。

我添加了这个:

<asp:TemplateField HeaderText="COE_%_RCVD_BY_LINE" SortExpression="COE_%_RCVD_BY_LINE">
    <ItemTemplate>
        <asp:Label ID="Lable70" runat="server" Text='<%# Bind("COE_%_RCVD_BY_LINE") %>'></asp:Label>
    </ItemTemplate
</asp:TemplateField>

产生了这个错误:

  

分析器错误消息:对Bind的调用格式不正确。有关Bind的正确参数,请参阅文档。

我认为导致错误的是%。有没有办法保留%并使其有效?

我忘了添加周围的<div></div>。它现在看起来像这样:                                            “&GT;                           

如何和我有这样的CSS设置:

.Gridview {
    overflow-x:auto;
    width:250px;
}

我很确定我已正确设置此设置,但列仍非常宽: Very Very Wide Column 并且CSS中的规则似乎不适用: Rules

1 个答案:

答案 0 :(得分:0)

我知道了。 我有样式的CSS文件,这不起作用。当我将样式添加到div内联时,它就会起作用,如下所示:

<asp:TemplateField HeaderText="DESCRIPTION" SortExpression="DESCRIPTION">
    <ItemTemplate>
        <div class="Gridview" style="overflow-x:auto; max-width:250px;">
            <asp:Label ID="Lable1" runat="server" Text='<%# Bind("DESCRIPTION") %>'></asp:Label>
        </div>
    </ItemTemplate>
</asp:TemplateField>

现在可以将滚动条添加到超出我设置的250px最大值的任何字段。

这主要可以在类似的问题中找到:Is it possible to scroll in a cell of a gridview?

但我确实知道style必须内联才能发挥作用。在CSS文件中使用style不起作用。