2009-02-27 2 views
0
내 페이지로드 이벤트는 다음과 같습니다

....의 asp.net의 SqlDataSource의 detailview : 적절한 설정하는 방법을 선택 문

SqlDataSource1.ConnectionString = Connection.ConnectionStr; 

    SqlDataSource1.SelectCommand = "select firstname,lastname from customer"; 

    SqlDataSource1.InsertCommand = "CustRec_iu"; 
    SqlDataSource1.InsertCommandType = SqlDataSourceCommandType.StoredProcedure; 

    SqlDataSource1.InsertParameters.Clear(); 

    SqlDataSource1.InsertParameters.Add(new Parameter("firstname", DbType.String)); 
    SqlDataSource1.InsertParameters.Add(new Parameter("LastName", DbType.String)); 
    SqlDataSource1.InsertParameters.Add(new Parameter("Active",DbType.Int16,"1")); 

detailview 제어 설정은 다음과 같습니다 ....

 <asp:DetailsView ID="dvCustDetails1" runat="server" AutoGenerateRows="False" 
      DataSourceID="SqlDataSource1" Height="149px" Width="469px" 
      OnItemInserted=dvCustDetails1_ItemInserted 

      > 
      <Fields> 
       <asp:BoundField DataField="FirstName" HeaderText="First Name" 
        SortExpression="FirstName" /> 
       <asp:BoundField DataField="LastName" HeaderText="Last Name" 
        SortExpression="LastName" /> 
       <asp:CommandField ButtonType="Button" ShowInsertButton="True" /> 
      </Fields> 
     </asp:DetailsView> 

삽입 기능을 수행 한 직후 ID 열인 고객 테이블에서 custid를 캡처하고 싶습니다. 그 중 일부를 추출하여 해당 레코드가있는 테이블을 선택하는 것과 같습니다.

select * from cu stomer where custid = @custid.

그런 다음 컨트롤 삽입 후 렌더링, 위의 선택 문을 기반으로 새로 삽입 된 레코드를 표시하고 싶습니다.

또한 detailsview에서 업데이트 버튼을 표시하여 레코드를 업데이트 할 수있게하고 싶습니다.

어떻게하면 되겠습니까 ??

Google 검색이나 도서 인쇄에 관한 문서는 거의 찾을 수 없습니다.

답변

0

SQL 호출의 반환 매개 변수와 함께 sqldatasource의 OnSelected 이벤트를 사용하려고합니다.

가의 SqlDataSource

OnSelected ="sqlds_Selected" 

이를 추가하고 그것을 같은 구현 :

protected void sqlds_Selected(object sender, SqlDataSourceStatusEventArgs e) 
{ 
    //get the command object from the arg and 
    //then you can get to the parameter value 

    e.Command.Parameters["@CustomerID"].Value 

    //then set this to your detailsview key 

} 
+0

내가 어떤 것을 놓치고하지만 나를 위해이 작동하지 않습니다 .. 자세한 내용은 도움이 될 것입니다. –