Frage

Wie aktualisieren ihr lassen Sie sich zum Beispiel sagen, ein Formview mit einer Object Quelle. Die DataObjectTypeName ist eine Klasse, die ich bereits mit einem Datenobjekt-Attribute gekennzeichnet. Nun, ich möchte den Update-Prozess anpassen und einige benutzerdefinierte Daten an den Parameter hinzuzufügen. Was müssen wir tun?

Beispiel: Ich habe eine BLL-Klasse, die es uns nennen wir „ProductsBLL“ und eine Datenklasse „Produkt“.

Ich erkläre die folgende Object Kontrolle:

<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>

Da die Update-Methode in der ProductsBLL Klasse ein Product-Objekt als Parameter akzeptiert. Nun, bevor die Aktualisierung stattfindet, mag ich ein benutzerdefinierten Daten an den Produktparameter hinzuzufügen. Wie kann ich das tun?

War es hilfreich?

Lösung

Ich bin nicht sicher genau das, was Ihre Frage ist (Sie müssen präziser sein), aber der allgemeine Ablauf ist wie folgt:

  • Ihre Gridview mit einem Object verknüpft.

  • Ihre Object zu einer Biz Logikschicht über die TypeName Eigenschaft verknüpft sind - Dies ist die Klasse, die für die Durchführung von Datenoperationen instanziiert werden. (Nennen wir es zum Beispiel ProductsBLL).

  • Es verwendet auch eine DataObjectTypeName Eigenschaft, die die Art des Gegenstandes wird abgerufen / aktualisiert / von der BLL gelöscht. (Sagen wir, Product)

  • Außerdem ist es die Methoden in der BLL gibt zu rufen, wenn eine Aktion aufgerufen wird (UpdateMethod, SelectMethod, etc.) (sagen wir, ProductsBLL.UpdateProducts, ProductsBLL.DeleteProducts)

  • Ihr BLL Objekt führt dann benutzerdefinierte Operationen wie Validierungslogik auf den Daten aus dem Object empfangen und ruft Ihre Datalayer die tatsächliche updation / Löschung aus der Datenbank auszuführen. (Sagen wir, ProductsDataLayer.UpdateProduct())

Wenn Sie weitere Informationen benötigen, können Sie Ihre Frage bearbeiten um genauer sein.

Bearbeiten (nach Bearbeitung auf ursprüngliche Frage):


Ändern des Product Parameter vor der Aktualisierung würde so einfach sein wie:

// 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);
}

, wo die ProductDL.UpdateProduct Macht wie folgt aussehen:

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

Und so weiter.

Andere Tipps

In der Object Aktualisierung Ereignis, überprüfen Sie die e.InputParameters Sammlung, Ihre Produkte Objekt sollte in e.InputParameters gespeichert werden [0].

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top