3

フォームにGridViewがあります。そのデータソースをDataTableに設定しました。次のようにDataTableを取得します。

SELECT AMOUNT, ISSUEDATE,REASON FROM PAYMENTS WHERE 
PENSIONERID=113 ORDER BY ISSUEDATE DESC

サーバー側でこのクエリを実行すると、3つのレコードが取得されます。しかし、私のWebページでは、グリッドビューにはそのうちの2つしか表示されません。グリッドビューにどのような種類のレコードも表示されないような条件がコードの背後に設定されていません。サーバーを再起動すると、グリッドビューに3番目の行が表示されます。これは私のIISに関連する問題ですか?いずれにせよ、その理由は何でしょうか?ありがとうございました。

GridViewとデータの読み込みコードは次のとおりです。

<asp:GridView ID="gvOdanBirm" runat="server" AllowPaging="True" 
    AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" 
    GridLines="None" OnPageIndexChanging="gvPayments_PageIndexChanging" 
    PageSize="3">
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <Columns>
        <asp:BoundField DataField="ISSUEDATE" HeaderText="Issue date">
            <ItemStyle BorderColor="#01055E" BorderStyle="Solid" BorderWidth="1px" 
                HorizontalAlign="Right" Width="70px" />
            <HeaderStyle BorderColor="#01055E" BorderStyle="Solid" BorderWidth="1px" />
        </asp:BoundField>
        <asp:BoundField DataField="AMOUNT" HeaderText="Amount">
            <ItemStyle BorderColor="#01055E" BorderStyle="Solid" BorderWidth="1px" 
                HorizontalAlign="Right" Width="30px" />
            <HeaderStyle BorderColor="#01055E" BorderStyle="Solid" BorderWidth="1px" />
        </asp:BoundField>
        <asp:BoundField DataField="REASON" HeaderText="REASON" 
            >
            <ItemStyle BorderColor="#01055E" BorderStyle="Solid" BorderWidth="1px" 
                HorizontalAlign="Left" Width="50px" />
            <HeaderStyle BorderColor="#01055E" BorderStyle="Solid" BorderWidth="1px" />
        </asp:BoundField>
    </Columns>
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
    <EditRowStyle BackColor="#999999" />
    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>

コードビハインド:

 gvPayments.DataSource=  GetPayments(pensionerID);
 gvPayments.DataBind();    
4

2 に答える 2

3

次のことを試してみてください。

  1. 行が表示されないときに生成されたページのソースコードを見てください...行がページにまったく入っていませんか?それとも、何らかの理由で表示されないだけですか?

  2. 次のページに移動して、表示されていない3行目を取得できますか?一時的にaspxコードからページングコマンドを取り出して、それで解決するかどうかを確認します。

  3. サーバーがデータベース、OS、IISのすべてのサービスパックなどで最新であることを確認します。

  4. 実行しているIISのバージョンは何ですか?どのサーバーOSですか?

  5. gvPayments_PageIndexChangingの背後にあるコードと、グリッドビューの構築の背後にあるコードを投稿できますか?

  6. 結果を表示するためにどのブラウザを使用していますか?エラーが発生した場合、別のブラウザまたは別のマシンを試すことができますか?そして、あなたは同じ結果を得ますか?

  7. 大物を忘れた...あなたは後に壊れることができますgvPayments.DataSource= GetPayments(pensionerID);か?3つの行すべてをデータベースから取得していますか?おそらくあなたの問題はaspxコードではなく、バインドするために戻ってきたデータにあります。

あなたがそれらを投稿している間、もっと考えます。

于 2012-05-01T12:28:25.233 に答える
0

SQL Serverですか?プロファイラーを実行して、どのselectステートメントが実際にSQLServerに渡されているかを確認します。これをManagementStudioにコピーして実行し、2つまたは3つのレコードを取得するかどうかを確認できます。いいえ、渡した正確なselectステートメントを実行していない可能性があります。実行されている内容を知る唯一の方法は、プロファイルを作成することです...

これにより、SQLに関連するのか、GridViewが問題の原因であるのかが確実にわかります...

于 2012-05-01T12:38:05.763 に答える