ASP.NET のグリッドビューでデータを表示する際に問題が発生しました。
これが私のグリッドビューです
<asp:GridView ID="grvConsumptions" runat="server" AllowSorting="true"
AllowPaging="true" AutoGenerateColumns="false" RowStyle-CssClass="txtB"
DataKeyNames="idConsumption" PageSize="30" Width="100%" CssClass="borders"
HeaderStyle-CssClass="subT" AlternatingRowStyle-CssClass="txtA"
onpageindexchanging="grvConsumptions_PageIndexChanging"
onsorting="grvConsumptions_Sorting">
<PagerStyle HorizontalAlign="Right" CssClass="subT" />
<EmptyDataTemplate>
<asp:Literal runat="server" ID="ltNoInformationFound">
No Data Found
</asp:Literal>
</EmptyDataTemplate>
<Columns>
<asp:BoundField HeaderText="ID" ReadOnly="true" DataField="idConsumption" SortExpression="idConsumption" HtmlEncode="False" />
<asp:BoundField HeaderText="No. Venta" ReadOnly="true" DataField="stationSaleNumber" SortExpression="stationSaleNumber" HtmlEncode="False" />
<asp:TemplateField HeaderText="Trans">
<ItemStyle HorizontalAlign="Center">
</ItemStyle>
<ItemTemplate>
<asp:Image ID="imgPayment" runat="server" ImageUrl="images/icons/aro.gif">
</asp:Image>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Tarjeta" ReadOnly="true" DataField="cardCode" SortExpression="cardCode" HtmlEncode="False" />
<asp:BoundField HeaderText="Fecha" ReadOnly="true" DataField="dateCreated" SortExpression="dateCreated" HtmlEncode="False" />
<asp:BoundField HeaderText="Litros" ReadOnly="true" DataField="quantity" SortExpression="quantity" DataFormatString="{0:0.000}" HtmlEncode="False" />
<asp:BoundField HeaderText="Descripción" ReadOnly="true" ItemStyle-Width="5%" DataField="description" SortExpression="description" />
<asp:BoundField HeaderText="Precio Unitario" ReadOnly="true" DataField="price" SortExpression="price" HtmlEncode="False"/>
<asp:BoundField HeaderText="Importe" ReadOnly="true" DataField="total" SortExpression="total" HtmlEncode="False"/>
<asp:BoundField HeaderText="Kms" ReadOnly="true" DataField="mileage" SortExpression="mileage" HtmlEncode="False"/>
</Columns>
<HeaderStyle HorizontalAlign="Left" />
<PagerStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<RowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<EditRowStyle CssClass="txtB" />
<EmptyDataRowStyle HorizontalAlign="Center" CssClass="tboxCombo" ForeColor="DarkGoldenrod" BorderWidth="0px" />
<RowStyle CssClass="txtB" />
<HeaderStyle CssClass="subT" />
<AlternatingRowStyle CssClass="txtA" />
</asp:GridView>
これは私が使った簡単な方法です。
DataTable dtConsumptions = GetData();
grvConsumptions.DataSource = dtConsumptions;
grvConsumptions.DataBind();
私の知る限り、グリッドビューにデータが表示されない理由をデバッグして調べる方法を見つけることができません(常にデータが見つかりませんというラベルが表示されます)。
DataTable に実際にデータがあること、およびグリッドビューが要求するすべての列がデータテーブルの列に存在することをすでに再確認しました。
この問題を修正したり、データが表示されない理由の例外を見つけたりするにはどうすればよいですか??