gridview列宽度未在绑定字段中的asp.net中设置

时间:2016-02-19 11:26:05

标签: c# css asp.net gridview

我需要设置第一列宽度的最大大小,但不是设置。同时将更多数据扩展。

 <div style="width:640px">
 <table style="width:640px">
    <asp:GridView ID="gvChallan" runat="server" AutoGenerateColumns="false" HeaderStyle-BackColor="#cccccc" Width="646px" >
        <HeaderStyle Width="222px" />
        <Columns>
            <asp:BoundField DataField="itemsdescription" HeaderText="Items/ Description" HtmlEncode="false" HeaderStyle-Width="222px" />
       <asp:BoundField DataField="Quantity" HeaderText="QTY" ItemStyle-Width="10%" ItemStyle-Wrap="false" ItemStyle-HorizontalAlign="center" /> 
       <asp:BoundField DataField="TotalBoxes" HeaderText="Total Boxes" ItemStyle-Width="10%" ItemStyle-Wrap="false" ItemStyle-HorizontalAlign="center" /> 
            </Columns>
    </asp:GridView>
     </table>
     </div>

3 个答案:

答案 0 :(得分:0)

使用HeaderStyle-Width代替ItemStyle-Width,如下所示。同时设置网格本身的全宽

<asp:BoundField DataField="itemsdescription" HeaderText="Items/ Description" HtmlEncode="false" HeaderStyle-Width="222px"  />

答案 1 :(得分:0)

首先为什么你有<table style="width:640px"><asp:GridView>会在表标记上生成它,您将使用此方法创建警告/问题。

您已经使用div标签定义了您希望它占用的宽度。因此,您不需要为GridView指定相同的值。将GridView的宽度设置为100%。将您的第一列设置为80%。因此,您的列宽为80%,10%和10%。

答案 2 :(得分:0)

您必须为所有列定义宽度,以便尊重这些值;例如,对于三列网格,请在gridview的 RowDataBound 事件中尝试此操作:

protected void yourGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
     e.Row.Cells[0].Style.Value =  "min-width:640px;";
     e.Row.Cells[1].Style.Value =  "min-width:200px;";
     e.Row.Cells[2].Style.Value =  "min-width:150px;";
}

希望这有助于某人。