1

これには簡単な答えがあると思いますが、アクセスデータソースにバインドされているページで詳細ビューコントロールを使用すると、テーブルの最初のレコードのみが表示されるのはなぜですか?

ドロップダウンリストを同じデータソースにバインドすると、ドロップダウンリストにテーブル内のすべてのレコードが表示されます。

別のページでデータリストを使用すると、作成したselectステートメントのすべてのレコードが表示されました。

各レコードを詳細ビューコントロールにロードするためにforループが必要ですか?

提案をありがとう、そして初心者の質問をお詫びします。

編集:これも私が参照しているページのコードです

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs"            Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <br />
        <br />
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
            DataSourceID="AccessDataSource2" DataTextField="Name" 
            DataValueField="ProductID">
        </asp:DropDownList>
        <asp:AccessDataSource ID="AccessDataSource2" runat="server" 
            DataFile="~/App_Data/Halloween.mdb" 
            SelectCommand="SELECT [ProductID], [Name] FROM [Products]">
        </asp:AccessDataSource>
        <br />
        <br />
        <br />
        <asp:DetailsView ID="DetailsView1" runat="server" 
            DataSourceID="AccessDataSource1" Height="50px" Width="125px" 
            DataKeyNames="ProductID">
            <Fields>
                <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" 
                    SortExpression="ProductID" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" 
                    SortExpression="CategoryID" />
            </Fields>
        </asp:DetailsView>
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" 
            DataFile="~/App_Data/Halloween.mdb" 
            SelectCommand="SELECT [ProductID], [Name], [CategoryID] FROM [Products] ORDER BY [CategoryID]">
        </asp:AccessDataSource>
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <br />

    </div>
    </form>
</body>
</html>
4

1 に答える 1

1

私は答えを発見しました。DetailsViewコントロールは、データソースにバインドされている場合、デフォルトではドロップダウンリストまたはListViewコントロールと同じように動作しません。DetailViewコントロールは通常、テーブルから一度に1つのレコードを表示します。ハイパーリンクがテーブル内の各レコードをナビゲートするように「ページング設定」を設定できる「ページングを有効にする」ことができます。うまくいけば、私の発見は将来誰か他の人を助けるでしょう。

これがDetailsViewコントロールのコードであり、上記の表記とどのように異なるかを示しています。

<asp:DetailsView ID="DetailsView1" runat="server" 
            DataSourceID="AccessDataSource1" Height="50px" Width="125px" 
            DataKeyNames="ProductID" AllowPaging="True" AutoGenerateRows="False">
            <PagerSettings Mode="NextPreviousFirstLast" />
            <Fields>
                <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" 
                    SortExpression="ProductID" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" 
                    SortExpression="CategoryID" />
            </Fields>
        </asp:DetailsView>
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" 
            DataFile="~/App_Data/Halloween.mdb" 
            SelectCommand="SELECT [ProductID], [Name], [CategoryID] FROM [Products] ORDER BY [CategoryID]">
        </asp:AccessDataSource>
于 2013-01-28T17:37:30.890 に答える