GridView不显示所有行

时间:2012-05-01 10:44:16

标签: c# asp.net .net data-binding gridview

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

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

当我在服务器端运行此查询时,我得到三条记录。但是在我的网页上,gridview只显示了其中的两个。后面的代码没有设置条件会导致gridview不显示任何类型的记录。一段时间后,当我重新启动服务器时,我可以看到gridview中的第三行。这是一个与我的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();    

2 个答案:

答案 0 :(得分:3)

您可以尝试以下方法吗?

  1. 查看未显示行时生成的页面的源代码...是否该行未进入页面?或者是因为某些原因不显示?

  2. 当你移动到下一页时,它是否会出现在第三行?暂时从aspx代码中取出分页命令,看看是否能解析它。

  3. 检查服务器是否与数据库,操作系统和IIS的所有Service Pack等保持同步。

  4. 您运行的是哪个版本的IIS?什么服务器操作系统?

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

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

  7. 忘了一个大伙伴......你能在gvPayments.DataSource= GetPayments(pensionerID);之后休息吗?您是否从数据库中检索了所有三行?也许你的问题不在aspx代码中,而是在你回来绑定的数据中。

  8. 发布这些内容时会想得更多。

答案 1 :(得分:0)

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

这将告诉您确定它是否与SQL相关或导致问题的GridView ......