GridView拉伸页面宽度

时间:2012-05-30 05:25:10

标签: c# asp.net css

我有一个13列的gridview。所有列都是绑定字段。 当数据绑定到gridview时,gridview会拉伸页面并且页面布局变得暗淡。 我添加了girdview的页面继承自mater页面,gridview位于面板内。我们处理百分比而不是像素,所以我面临这个问题。如果我使用像素来固定gridview的宽度它是有效的,但不是%的情况。 我已经尝试了以下所有 -

  1. 删除绑定字段并使用模板字段并修复itemstyle-width。
  2. 将girdview放在表格中并应用样式来设置宽度,溢出和其他必需属性。
  3. 将gridview放在div中并应用样式来设置宽度,溢出和其他必需属性。
  4. 在面板中添加gridview,然后如上所述设置面板的属性。
  5. 什么有效: - 当我将gridview的“tableLayout”属性修复为“fixed”时,它会显示在范围内但所有文本都相互重叠,因此所有的东西都变得无用。

    请建议我。

    示例代码: -

    <table>
                <tr>
                    <td>
                <asp:Panel ID="pnlSearchResult" runat="server" Visible="false" Width="97%">
                <div style="overflow:scroll;width:100%;table-layout:fixed">
                    <asp:GridView ID="grdSearchResult" runat="server" SkinID="NewGridGS" EmptyDataText="No records found"
                    Width="99%">
                        <Columns>                            
                            <asp:BoundField DataField="ECode" HeaderText="Code"/>
                            <asp:BoundField DataField="EName" HeaderText="Name" />
                            <asp:BoundField DataField="Type" HeaderText="V Type" />
                            <asp:BoundField DataField="VName" HeaderText="V Name" />
                            <asp:BoundField DataField="PStartDate" HeaderText="P Start Date" />
                            <asp:BoundField DataField="PEndDate" HeaderText="P End Date" />
                            <asp:BoundField DataField="VStartDate" HeaderText="V Start Date" />
                            <asp:BoundField DataField="VEndDate" HeaderText="V End Date" />
                            <asp:BoundField DataField="OnSite" HeaderText="On Site" />
                            <asp:BoundField DataField="PCode" HeaderText="P Code" />
                            <asp:BoundField DataField="PSCode" HeaderText="PS Code" />
                            <asp:BoundField DataField="AmountUSD" HeaderText="Amount (USD)" />
                            <asp:BoundField DataField="AmountINR" HeaderText="Amount (INR)" />
                        </Columns>
                    </asp:GridView>
                    </div>
                </asp:Panel>
            </td>
            </tr>
            </table>
    

2 个答案:

答案 0 :(得分:2)

以像素为单位给出包含网格的div的宽度,而不是百分比

<td>
<div id="divGrid" style='position:absolute; width:800px; overflow:auto'>

<!-- your grid here -->

</div>

</td>

您可以以像素为单位获取屏幕宽度并以百分比计算像素。假设屏幕宽度为1000像素,则返回screen.width然后你90%将是900px。

<script language="javascript" type="text/javascript">
   document.getElementById('divGrid').style.width = screen.width + "px";
</script>

答案 1 :(得分:1)

您可以根据需要使用100%而不使用Javascript

<td>
    <div id="gridDiv" style='width:100%; overflow:auto;'>
        <!-- your grid here -->
    </div>
</td>