2014-02-21 3 views
0

Как я могу заставить GridView автоматически изменять размер ширины каждого столбца или фиксировать ширину каждого столбца в Default.aspx? Проблема, с которой я сталкиваюсь, заключается в том, что некоторые столбцы слишком широкие, а другие слишком узкие (данные переходят к следующей строке).Как управлять шириной столбца в gridview?

<div class="divNext"> 
    <asp:ScriptManagerProxy ID="DisplayResultsScriptManager" runat="server"> 
    </asp:ScriptManagerProxy> 
    <asp:UpdatePanel ID="DisplayResultsUpdatePanel" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <div> 
       <asp:GridView ID="GridViewX" RowStyle-Wrap="false" AllowSorting="true" 
        GridLines="Vertical" OnSorting="GridViewX_Sorting" OnRowDataBound="GridViewX_RowDataBound" 
        runat="server" Height="100" Width="100%" EnableViewState="true"> 
       </asp:GridView> 
      </div> 
      <asp:Timer ID="ResultsTimer" Interval="60000" Enabled="true" runat="server" OnTick="DisplayResultsTimer_Tick"> 
      </asp:Timer> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</div> 
+0

вы можете разместить его в скрипку? – Harish

+0

Спасибо за ваши предложения о том, как создать фиксированную ширину столбца. Любой способ заставить GridView авторизовать ширину столбца в зависимости от длины данных? – user2142250

ответ

1

Вы должны использовать BoundField или другие поля, если вы хотите получить больше контроля над каждым столбцом.

Смотрите раздел декларативного синтаксиса this page для полей другого типа.

Примечание: удостоверьтесь, что AutoGenerateColumns="False", если вы создаете столбцы самостоятельно.

enter image description here

<asp:GridView ID="GridViewX" runat="server" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:BoundField DataField="Name" HeaderText="Name"> 
      <ItemStyle Width="150px"/> 
     </asp:BoundField> 
     <asp:BoundField DataField="Address" HeaderText="Address"> 
      <ItemStyle Width="50px"/> 
     </asp:BoundField> 
    </Columns> 
</asp:GridView> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    GridViewX.DataSource = new List<Custom> 
    { 
     new Custom {Name = "Jon Doe", Address = "123 Street"}, 
     new Custom {Name = "Merry Doe", Address = "123 Street"}, 
    }; 
    GridViewX.DataBind(); 
} 

public class Custom 
{ 
    public string Name { get; set; } 
    public string Address { get; set; } 
} 
0

Добавить <RowStyle CssClass="rowstyle" />

<asp:GridView ID="GridViewX" RowStyle-Wrap="false" AllowSorting="true" 
        GridLines="Vertical" OnSorting="GridViewX_Sorting" OnRowDataBound="GridViewX_RowDataBound" 
        runat="server" Height="100" Width="100%" EnableViewState="true"> 
       <RowStyle CssClass="rowstyle" /> 
       </asp:GridView> 

CSS:

<style> 
     .rowstyle td 
     { 
      width:150px; 
     } 

    </style> 
Смежные вопросы