3

我的表单上有一个 GridView。我已将其 DataSource 设置为 DataTable。我像这样检索 DataTable:

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

当我在服务器端运行这个查询时,我得到了三条记录。但是在我的网页上,gridview 只显示了其中的两个。后面的代码没有设置任何条件会导致 gridview 不显示任何类型的记录。一段时间后,当我重新启动服务器时,我可以在 gridview 中看到第三行。这是与我的 IIS 相关的问题吗?在任何情况下可能是什么原因?谢谢你。

这是 GridView 和 datat 加载代码:

<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. 当它没有出现时,你可以通过移动到下一页来获得第三行吗?暂时从aspx代码中取出分页命令,看看是否解决。

  3. 检查服务器是否是最新的数据库、操作系统和 IIS 的所有服务包等。

  4. 您正在运行什么版本的 IIS?什么服务器操作系统?

  5. 您可以发布后面的代码gvPayments_PageIndexChanging,以及构建gridview 背后的任何代码吗?

  6. 您使用什么浏览器查看结果?当您收到错误消息时,您可以尝试其他浏览器或其他机器吗?你得到同样的结果吗?

  7. 忘了一个大人物......你能打破gvPayments.DataSource= GetPayments(pensionerID);吗?您是否从数据库中检索了所有三行?也许您的问题不在于 aspx 代码,而在于您要返回绑定的数据。

当你发布这些时会想得更多。

于 2012-05-01T12:28:25.233 回答
0

是 SQL Server 吗?运行探查器并查看实际传递给 SQL Server 的 select 语句。您可以将其复制到 Management Studio 并执行以查看是否获得 2 或 3 条记录。不,它可能没有运行您传递给它的确切选择语句,并且知道它正在运行什么的唯一方法是分析它......

这将肯定地告诉您它是与 SQL 相关还是导致问题的 GridView...

于 2012-05-01T12:38:05.763 回答