ASP.NET : ObjectDatasource에서 업데이트 할 때 객체 유형을 매개 변수로 처리합니다.

StackOverflow https://stackoverflow.com/questions/891959

문제

어떻게 업데이트합니까? DataObjectTyPename은 이미 DataObject 속성으로 표시된 클래스입니다. 이제 업데이트 프로세스를 사용자 정의하고 매개 변수에 사용자 정의 데이터를 추가하고 싶습니다. 우리는 무엇을해야합니까?

예 : "ProductsBll"과 데이터 클래스 "제품"이라고 부르는 BLL 클래스가 있습니다.

다음과 같은 ObjectDatasource 제어를 선언합니다.

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
DataObjectTypeName="Product" OldValuesParameterFormatString="original_{0}"
SelectMethod="GetProduct" TypeName="Assembly.ProductsBLL" 
UpdateMethod="UpdateProduct">
  <UpdateParameters>
    <asp:Parameter Name="product" Type="Object" />
  </UpdateParameters>
  <SelectParameters>
    <asp:QueryStringParameter Name="productID" QueryStringField="ProdID" Type="Int32" />
  </SelectParameters>
</asp:ObjectDataSource>

ProductsBll 클래스의 업데이트 메소드가 제품 객체를 매개 변수로 받아들입니다. 이제 업데이트가 이루어지기 전에 제품 매개 변수에 사용자 정의 데이터를 추가하고 싶습니다. 어떻게 할 수 있습니까?

도움이 되었습니까?

해결책

나는 당신의 질문이 무엇인지 정확히 잘 모르겠지만 (당신은 더 구체적이어야 함) 일반적인 흐름은 다음과 같습니다.

  • GridView는 ObjectDatasource에 연결되어 있습니다.

  • 귀하의 ObjectDatasource는 TypeName 속성 - 이것은 데이터 작업을 수행하기 위해 인스턴스화 될 클래스입니다. (불러라 ProductsBLL 예를 들어).

  • 또한 사용합니다 DataObjectTypeName BLL에 의해 검색/업데이트/삭제되는 객체의 유형 인 속성. (말하다, Product)

  • 또한 조치가 호출 될 때마다 전화 할 BLL의 메소드를 지정합니다 (UpdateMethod, SelectMethod, 등) (예 : ProductsBLL.UpdateProducts, ProductsBLL.DeleteProducts)

  • 그런 다음 BLL 객체는 ObjectDataSource에서받은 데이터에 대한 유효성 검사 로직과 같은 사용자 정의 작업을 수행하고 데이터베이스에서 실제 업데이트/삭제를 수행하기 위해 DatalAyer에 전화를 걸었습니다. (말하다, ProductsDataLayer.UpdateProduct())

더 많은 정보가 필요한 경우 질문을보다 구체적으로 편집하십시오.

편집하다 (원래 질문으로 편집 한 후) :


수정 Product 업데이트 전 매개 변수는 다음과 같이 간단합니다.

// In Biz Logic Layer.
public int UpdateProduct(Product p)
{
  // Modify the ProductName and the Price properties of this Product.
  p.ProductName = "Product " + p.ProductName;
  p.Price = 0.95 * p.Price;

  // Call DataLayer.
  return ProductDL.UpdateProduct(p.ID, p.ProductName, p.Quantity, p.Price);
}

어디에 ProductDL.UpdateProduct ~할 것 같다 모양 :

public int UpdateProduct
  (
    string productID,
    string productName,
    int productQty,
    float productPrice
    )

등등.

다른 팁

ObjectDatasource 업데이트 이벤트에서 E.InputParameters 컬렉션을 확인하십시오. 제품 객체는 E.InputParameters [0]에 저장해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top