2014-01-08 57 views
4

如何修復GridView中每列的寬度。我的GridView保持與單元格中的數據一起擴展。當它到達單元格的右側時,我需要它跳到新行。這是我在.aspx文件中的代碼:如何修復GridView中每列的寬度?

<asp:GridView ID="GridView1" runat="server" 
AutoGenerateColumns="False" DataKeyNames="Emp_ID" DataSourceID="LinqDataSource1" 
AllowPaging="True" AllowSorting="True" Width="900px" HorizontalAlign="Center" >       
      <Columns> 
       <asp:BoundField DataField="Emp_ID" HeaderText="ID" 
     InsertVisible="False" ReadOnly="True" SortExpression="Emp_ID"/> 
       <asp:BoundField DataField="Emp_Username" 
     HeaderText="Username" SortExpression="Emp_Username" /> 
       <asp:BoundField DataField="Emp_Password" 
     HeaderText="Password" SortExpression="Emp_Password" /> 
       <asp:BoundField DataField="Emp_Name" 
     HeaderText="ชื่อพนักงาน" SortExpression="Emp_Name" /> 
       <asp:BoundField DataField="Emp_Address" 
     HeaderText="ที่อยู่" SortExpression="Emp_Address" /> 
       <asp:BoundField DataField="Emp_Tel" 
     HeaderText="เบอร์โทรศัพท์" SortExpression="Emp_Tel" /> 
       <asp:TemplateField HeaderText="รูปพนักงาน" SortExpression="Emp_Picture"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Emp_Picture") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Image ID="Image2" runat="server" Height="70px" 
             ImageUrl='<%# Eval("Emp_Picture", "{0}") %>' Width="50px" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="Status" HeaderText="สถานะ" 
     SortExpression="Status" /> 
       <asp:HyperLinkField DataNavigateUrlFields="Emp_ID" 
           DataNavigateUrlFormatString="AdminUpdate.aspx?Emp_ID={0}" Text="Edit" /> 
       <asp:TemplateField> 
        <HeaderTemplate> 
         <asp:CheckBox ID="ChkSelectAll" runat="server" 
       AutoPostBack="True" oncheckedchanged="ChkSelectAll_CheckedChanged" /> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <asp:CheckBox ID="Chk" runat="server" AutoPostBack="True" oncheckedchanged="Chk_CheckedChanged" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
</asp:GridView> 

這裏是我的設計視圖:

Imgur

正如你可以看到,前4列有直到5列它使沒有問題擴展導致所有GridView延伸出頁面

回答

1

包裝是基於單詞完成的,因此任何單個單詞都不會在兩行中斷裂。

因此,如果你的數據有很長的字符串沒有空間,你將無法工作。

問題是你不能自己插入空格,因爲這可能會改變數據的含義。

雖然在網格中顯示we show only that long string which can be accommodated in column and then add "..." (only if string is more than what is showing) and then add a tooltip to show the full string. 這樣網格格式化不會受到影響,如果用戶希望他可以懸停鼠標並查看整個字符串。

希望這有助於

+0

我只是嘗試,現在它的工作,所以我應該增加更多的空間在這個詞。非常感謝 !! –

0

嘗試將GridView的屬性RowStyle-Wrap設置爲True

+0

您好,我只是檢查它,它已經設置爲「真」。 –

0

您可以使用ItemStyle-Width固定列寬,但如果你輸入不能在給定的寬度被封閉(如圖像所示)字符,列將擴大爲每輸入所以你可以使用RowStyle-Wrap屬性的GridView的

<asp:GridView ID="grdVwtrial" runat="server" RowStyle-Wrap="true"> 
3

設置每column.For例子itemstyle寬度。

<asp:BoundField DataField="Emp_Address" 
    HeaderText="ที่อยู่" SortExpression="Emp_Address"> 
    <ItemStyle Width="200px" HorizontalAlign="Left" /> 
</asp:BoundField> 
+0

它將垂直擴展,但不是水平擴展。因爲你修正了寬度。 – Raghubar

+0

這是工作。感謝:) –

+0

@ user3162003如果它的工作,然後投票。 – Raghubar