ASP.NET : ObjectDatasource에서 업데이트 할 때 객체 유형을 매개 변수로 처리합니다.
-
23-08-2019 - |
문제
어떻게 업데이트합니까? 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]에 저장해야합니다.