2012-12-12 3 views
0

선택 링크가있는 gridview가 있습니다. 아마도 select 링크를 클릭하면 DataKeyNames에 대한 세부 정보가 표시됩니다.gridview에서 행 선택 및 세부 정보보기

그러나 제 경우에는 "선택"을 클릭 할 때마다 하나의 레코드 만 나오고 선택한 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

, 당신은 SelectCommand에있는 매개 변수를 설정해야합니다. 예 : SELECT [poNum], [quantity], [unitPrice], [totalAmt], [grandTotal] FROM [PO] WHERE [poNum] = @poNum. 또한 기본값을 설정해야 할 수도 있습니다. –

답변

1

..하지만 제대로 작동하지 않는 한 DetailsView 컨트롤은 종종 마스터 컨트롤의 선택된 레코드 상세 뷰에 표시 할 레코드를 결정하는 마스터 정보 시나리오에서 사용된다. 다음 ASP.NET 프로그램은 GridView 및 DetailsView 컨트롤을 사용하여 데이터베이스에서 마스터 - 세부 정보 데이터를 표시하는 방법을 보여줍니다. 여기서는 마스터 데이터를 판매 데이터로 사용하고 상점 데이터로 세부 정보를 사용합니다. 사용자가 판매 데이터 행을 선택하면 DetailsView에 해당 상점 세부 정보가 표시됩니다.

예 : SqlDataSource2를 들어

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>