0

13列のグリッドビューがあります。すべての列はバインドされたフィールドです。データがグリッドビューにバインドされると、グリッドビューによってページが引き伸ばされ、ページのレイアウトが鈍くなります。グリッドビューを追加したページは、母体ページから継承され、グリッドビューはパネル内にあります。私たちはピクセルではなくパーセンテージで作業しているので、私はこの問題に直面しています。ピクセルを使用してグリッドビューの幅を固定すると、正常に機能しますが、%の場合は機能しません。私は以下のすべてを試しました-

  1. バインドされたフィールドと使用されているテンプレートフィールドを削除し、itemstyle-widthを修正します。
  2. グリッドビューをテーブル内に配置し、スタイルを適用して幅、オーバーフロー、およびその他の必要なプロパティを設定します。
  3. グリッドビューをdiv内に配置し、スタイルを適用して幅、オーバーフロー、およびその他の必要なプロパティを設定します。
  4. パネル内にグリッドビューを追加してから、上記のようにパネルのプロパティを設定します。

動作内容: -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>
4

2 に答える 2

2

グリッドを含むdivの幅をパーセンテージではなくピクセル単位で指定します

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

<!-- your grid here -->

</div>

</td>

画面の幅をピクセル単位で取得し、ピクセルをパーセンテージで計算できます。画面の幅が1000ピクセルで、screen.widthによって返されるとすると、90%は900ピクセルになります。

<script language="javascript" type="text/javascript">
   document.getElementById('divGrid').style.width = screen.width + "px";
</script>
于 2012-05-30T05:33:17.850 に答える
1

Javascriptなしでパーセンテージを好きなように100%使用できます

<td>
    <div id="gridDiv" style='width:100%; overflow:auto;'>
        <!-- your grid here -->
    </div>
</td>
于 2017-09-23T07:45:21.533 に答える