我的表单上有一个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();
答案 0 :(得分:3)
您可以尝试以下方法吗?
查看未显示行时生成的页面的源代码...是否该行未进入页面?或者是因为某些原因不显示?
当你移动到下一页时,它是否会出现在第三行?暂时从aspx代码中取出分页命令,看看是否能解析它。
检查服务器是否与数据库,操作系统和IIS的所有Service Pack等保持同步。
您运行的是哪个版本的IIS?什么服务器操作系统?
您可以在gvPayments_PageIndexChanging
后面发布代码,以及构建gridview后的任何代码吗?
您使用什么浏览器查看结果?当您收到错误时,可以尝试其他浏览器或其他计算机吗?你得到相同的结果吗?
忘了一个大伙伴......你能在gvPayments.DataSource= GetPayments(pensionerID);
之后休息吗?您是否从数据库中检索了所有三行?也许你的问题不在aspx代码中,而是在你回来绑定的数据中。
发布这些内容时会想得更多。
答案 1 :(得分:0)
是SQL Server吗?运行探查器并查看实际传递给SQL Server的select语句。您可以将其复制到Management Studio并执行以查看是否获得2或3条记录。不,它可能没有运行您传递给它的确切选择语句,并且知道它正在运行的唯一方法是对其进行分析......
这将告诉您确定它是否与SQL相关或导致问题的GridView ......