2011-03-09 69 views
2

我在我的GridView中有一些記錄。但是每條記錄都有一個問題,一個單元包含大量的數據。我仍然希望顯示數據並允許用戶向下滾動閱讀(如果他們感興趣)。是否有可能在該單元格中滾動?是否可以在gridview的單元格中滾動?

編輯:

這是我指的是CSS:

.AspNet-GridView 
    { 
     overflow: auto; 
     height:400px; 
    } 
    .AspNet-GridView table thead tr th 
    { 
     height:20px; 
     position:relative; 
    } 
    .AspNet-GridView table tbody 
    { 
     overflow: auto; 
    } 

編輯2: 這是GridView和我想用身體HEADERTEXT列允許滾動。

<asp:GridView ID="gvAanvragen" 
    OnPageIndexChanging="GvAanvragen_PageIndexChanging" runat="server" AllowPaging="True" 
    AllowSorting="True" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" 
    BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Vertical" 
    PageSize="5" AutoGenerateColumns="false" AutoGenerateSelectButton="True" 
     onselectedindexchanged="GvAanvragen_SelectedIndexChanged" 
     CssClass="AspNet-GridView"> 
    <RowStyle BackColor="#F7F7DE" /> 
    <FooterStyle BackColor="#CCCC99" /> 
    <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" /> 
    <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" /> 
    <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" /> 
    <AlternatingRowStyle BackColor="White" /> 
    <Columns> 
     <asp:BoundField HeaderText="ID" DataField="ID" /> 
     <asp:BoundField HeaderText="Subject" DataField="Subject" /> 
     <asp:BoundField HeaderText="Body" DataField="Body" HtmlEncode="false" /> 
     <asp:BoundField HeaderText="Sent" DataField="Sent" /> 
    </Columns> 
</asp:GridView> 

有人可以幫我嗎?

+0

好像你嘗試使用CSS,它沒有工作?也許你錯過了「.AspNet-GridView table tr td {...}」?你可以試試看。但是可能需要在td內部有一個div,你可以使用Naveed的答案來實現。 – chiccodoro 2011-03-09 08:25:41

+0

問題是,我對如何實現Naveed所說的:s沒有任何想法。如何添加模板列? – SamekaTV 2011-03-09 08:41:49

回答

4

爲了增加函數naveed的答案,現在你已經發布的原碼:http://www.asp.net/data-access/tutorials/using-templatefields-in-the-gridview-control-cs具有數據綁定模板的一個很好的例子現場:

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

在你的情況下,只需更換線

<asp:BoundField HeaderText="Body" DataField="Body" HtmlEncode="false" /> 

由代碼函數naveed提供,並添加數據綁定在這個例子中,你endup的東西,如:

<asp:TemplateField HeaderText="Body"> 
    <ItemTemplate> 
     <div style="overflow:auto; height: 100px;"> 
      <asp:Label ID="Label1" runat="server" Text='<%# Bind("Body")%>'></asp:Label> 
     </div> 
    </ItemTemplate> 
</asp:TemplateField> 

如果你不想使用標籤,然後用文字控件,而不是:

<asp:Literal ID="Literal1" runat="server" Text='<%# Bind("Body")%>' /> 
+0

這正是我所做的。但是,我怎樣才能得到那個單元格的文本。因爲現在該單元格包含一個標籤而不再是文本。 – SamekaTV 2011-03-10 12:31:43

+0

@Massimo:我需要澄清一下你的意思是「文字」。在你的意義上,標籤中的文字是不是「文字」? – chiccodoro 2011-03-11 08:50:08

+0

@Massimo:如果你正在談論一個文本*框*來編輯內容:參考我發佈的鏈接,它還顯示瞭如何使用'' – chiccodoro 2011-03-11 08:50:57

1

您可以添加一個模板列,並在該列內部將所有內容放入具有溢出設置的div內(請參閱CSS溢出)。

6

您可以使用模板欄目,並把裏面的一個div style="overflow:auto;"

<asp:TemplateField> 
    <ItemTemplate> 
     <div style="overflow:auto; height: 100px;"><Your Content here></div> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

+1在閱讀這個問題時,這幾乎是我想到的。 – chiccodoro 2011-03-09 08:23:04

+1

@Massimo:而不是''你添加上面的代碼。您只需要用一些數據綁定內容替換「<您的內容>」。你會在網上找到這樣的例子。 – chiccodoro 2011-03-09 15:34:03

相關問題