0

我有一个带有选择链接的网格视图。据说,当我单击选择链接时,应该出现 DataKeyNames 的特定详细信息。

但是,就我而言,每当我单击“选择”时,只会出现一条记录,并且它不会更改并与所选 DataKeyNames 的数据匹配。我已经阅读了网上的许多示例,并且我做的完全一样,但是它不能正常工作。。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:WholesaleConnectionString %>" 
    SelectCommand="SELECT [poNum], [retailerID] FROM [PO]"></asp:SqlDataSource>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="poNum" DataSourceID="SqlDataSource1" >
    <Columns>
        <asp:CommandField ShowSelectButton="True" />
        <asp:BoundField DataField="poNum" HeaderText="poNum" InsertVisible="False" 
            ReadOnly="True" SortExpression="poNum" />
        <asp:BoundField DataField="retailerID" HeaderText="retailerID" 
            SortExpression="retailerID" />
    </Columns>
</asp:GridView>


<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:WholesaleConnectionString %>" 
    SelectCommand="SELECT [poNum], [quantity], [unitPrice], [totalAmt], [grandTotal] FROM [PO]">

    <SelectParameters>
    <asp:ControlParameter Name="poNum" ControlID="GridView1" PropertyName="SelectedValue" Type="Int32" />
    </SelectParameters>
   </asp:SqlDataSource>

<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="SqlDataSource2" 
    Height="50px" Width="125px">
</asp:DetailsView>
4

1 回答 1

1

DetailsView 控件也经常用在主-详细信息场景中,其中主控件的选定记录决定了要在详细视图中显示的记录。下面的 ASP.NET 程序展示了如何使用 GridView 和 DetailsView 控件显示来自数据库的主从数据。在这里,我们将主数据用作销售数据,将明细用作商店数据。当用户选择一行销售数据时,它将在 DetailsView 中显示相应的商店详细信息。

例如:

默认.aspx

<!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 id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <br /><b><u>Sales Details</u></b><br /><br />
        <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"
        DataKeyNames="stor_id" AutoGenerateSelectButton="true"  AllowPaging="True" pagesize ="5"  />
        <br /><b><u>Store Details</u></b><br /><br />
        <asp:DetailsView id="DetailsView1" DataSourceID="SqlDataSource2"
        DataKeyNames="stor_id" AllowPaging ="true" Runat="server" />
        <asp:SqlDataSource ID="SqlDataSource1" runat="server"
        ConnectionString="<%$ ConnectionStrings:SQLDbConnection %>"
        SelectCommand="select * from sales" />
        <asp:SqlDataSource ID="SqlDataSource2" runat="server"
        ConnectionString="<%$ ConnectionStrings:SQLDbConnection %>"
        SelectCommand="select * from stores WHERE stor_id=@stor_id" >
        <SelectParameters>
           <asp:ControlParameter Name="stor_id" ControlID="GridView1" />
        </SelectParameters>
        </asp:SqlDataSource>
    </div>
    </form>
</body>
</html>
于 2014-01-01T05:42:51.937 回答