2012-12-12 48 views
0

我有一個帶有select鏈接的gridview。據說,當我點擊選擇鏈接時,DataKeyNames的特定細節應該出現。在gridview中選擇一行並在detailview中顯示

但是,對於我的情況,每當我點擊「選擇」時,只有一條記錄出來,它不會改變,並與選定的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> 
+0

對於SqlDataSource2,你需要設置在SelectCommand中的參數。例子:SELECT [poNum],[quantity],[unitPrice],[totalAmt],[grandTotal] FROM [PO] WHERE [poNum] = @poNum。您也可能需要爲此設置默認值。 –

回答

1

DetailsView控件也經常以主細節場景,其中所述主控制的所選擇的記錄確定在詳細視圖中顯示的記錄中使用。以下ASP.NET程序顯示瞭如何使用GridView和DetailsView控件顯示數據庫中的主數據細節數據。在這裏,我們使用主數據作爲銷售數據和細節作爲商店數據。當用戶選擇一行銷售數據時,它會在DetailsView中顯示相應的商店詳細信息。

如:

Default.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 [email protected]_id" > 
     <SelectParameters> 
      <asp:ControlParameter Name="stor_id" ControlID="GridView1" /> 
     </SelectParameters> 
     </asp:SqlDataSource> 
    </div> 
    </form> 
</body> 
</html> 
相關問題