ObjectDataSourceView.InsertParameters Özellik

Tanım

yöntemi tarafından InsertMethod kullanılan parametreleri içeren parameters koleksiyonunu alır.

public:
 property System::Web::UI::WebControls::ParameterCollection ^ InsertParameters { System::Web::UI::WebControls::ParameterCollection ^ get(); };
public System.Web.UI.WebControls.ParameterCollection InsertParameters { get; }
member this.InsertParameters : System.Web.UI.WebControls.ParameterCollection
Public ReadOnly Property InsertParameters As ParameterCollection

Özellik Değeri

ParameterCollection özelliği tarafından InsertMethod kullanılan parametreleri içeren bir.

Örnekler

Bu bölüm iki kod örneği içerir. İlk kod örneği, bir iş nesnesi ve DetailsView veri eklemek için bir ObjectDataSource denetim kullanarak filtrelenmiş verilerin nasıl görüntüleneceğini gösterir. İkinci kod örneği, ilk kod örneğinde kullanılan yöntemin örnek uygulamasını Insert sağlar.

Aşağıdaki kod örneği, bir denetimin ObjectDataSource bir iş nesnesi ve DetailsView bir denetimle veri eklemek için nasıl kullanılacağını gösterir. başlangıçtaDetailsView, otomatik olarak oluşturulan Ekle düğmesiyle birlikte yeni NorthwindEmployee bir kayıt görüntüler. Denetimin alanlarına DetailsView veri girdikten sonra Ekle düğmesine tıklayın. InsertMethod özelliği, işlemi gerçekleştiren yöntemi Insert tanımlar.

Ekle düğmesine tıklarsanız, Insert işlem özelliği tarafından InsertMethod belirtilen yöntemi ve koleksiyonda InsertParameters belirtilen tüm parametreler kullanılarak gerçekleştirilir. Bu kod örneğinde, koleksiyonda InsertParameters gözetmen kimliğine karşılık gelen bir parametre belirtilir. Bunun nedeni, kimliğin denetim koleksiyonunda Fields nesne BoundField olarak görüntülenmesine DetailsView rağmen denetime ObjectDataSource bir dize olarak geçirilmesidir. Bunu değerine ayarlanmış bir Type özelliğiyle koleksiyonuna Int32 açıkça InsertParameters ekleyerek yöntemi tarafından ObjectDataSource olarak değil, yöntemine intdoğru şekilde stringgeçirilir.

Insert İşlem gerçekleştirildiğinde özelliği tarafından InsertMethod tanımlanan yöntem çağrılır. nesnesinin Insert yönteminde parametreler içeren bir yöntem imzası varsa, koleksiyonun InsertParameters başarıyla tamamlanması için yöntem imzası parametreleriyle eşleşen adlara sahip bir parametre içermesi Insert gerekir.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Import namespace="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<!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>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:detailsview
          id="DetailsView1"
          runat="server"
          autogenerateinsertbutton="True"
          autogeneraterows="false"
          datasourceid="ObjectDataSource1"
          defaultmode="Insert" >
          <fields>
            <asp:BoundField headertext="FirstName" datafield="FirstName" />
            <asp:BoundField headertext="LastName"   datafield="LastName" />
            <asp:BoundField headertext="Title"      datafield="Title" />
            <asp:BoundField headertext="Courtesy"   datafield="Courtesy" />
            <asp:BoundField headertext="Supervisor" datafield="Supervisor" />
          </fields>
        </asp:detailsview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          insertmethod="InsertNewEmployeeWrapper"
          typename="Samples.AspNet.CS.EmployeeLogic" >
          <selectparameters>
            <asp:parameter name="anID" defaultvalue="-1" />
          </selectparameters>
          <insertparameters>
            <asp:parameter name="Supervisor" type="Int32" />
          </insertparameters>
        </asp:objectdatasource>

    </form>
  </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ Import namespace="Samples.AspNet.VB" %>
<%@ Page language="vb" %>
<!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>
    <title>ObjectDataSource - VB Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:detailsview
          id="DetailsView1"
          runat="server"
          autogenerateinsertbutton="True"
          autogeneraterows="false"
          datasourceid="ObjectDataSource1"
          defaultmode="Insert" >
          <fields>
            <asp:BoundField headertext="FirstName" datafield="FirstName" />
            <asp:BoundField headertext="LastName"   datafield="LastName" />
            <asp:BoundField headertext="Title"      datafield="Title" />
            <asp:BoundField headertext="Courtesy"   datafield="Courtesy" />
            <asp:BoundField headertext="Supervisor" datafield="Supervisor" />
          </fields>
        </asp:detailsview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetEmployee"
          insertmethod="InsertNewEmployeeWrapper"
          typename="Samples.AspNet.VB.EmployeeLogic" >
          <selectparameters>
            <asp:parameter name="anID" defaultvalue="-1" />
          </selectparameters>
          <insertparameters>
            <asp:parameter name="Supervisor" type="Int32" />
          </insertparameters>
        </asp:objectdatasource>

    </form>
  </body>
</html>

Aşağıdaki kod örneği, önceki kod örneğinin Insert kullandığı yöntemin örnek uygulamasını sağlar. Yöntemi InsertNewEmployeeWrapper , nesnenin EmployeeLogic Web senaryolarındaki denetimle ObjectDataSource daha kolay çalışmasını sağlamak için orta katman nesnesine eklenir ve gerçek iş mantığına önemli bir yeniden yazma işlemi yapılmaz.

// This InsertNewEmployeeWrapper method is a wrapper method that enables
// the use of ObjectDataSource and InsertParameters, without
// substantially rewriting the true implementation for the NorthwindEmployee
// or the EmployeeLogic objects.
//
// The parameters to the method must be named the same as the
// DataControlFields used by the GridView or DetailsView controls.
public static void InsertNewEmployeeWrapper (string FirstName,
                                             string LastName,
                                             string Title,
                                             string Courtesy,
                                             int    Supervisor)
{
  // Build the NorthwindEmployee object and
  // call the true  implementation.
  NorthwindEmployee tempEmployee = new NorthwindEmployee();

  tempEmployee.FirstName  = FirstName;
  tempEmployee.LastName   = LastName;
  tempEmployee.Title      = Title;
  tempEmployee.Courtesy   = Courtesy;
  tempEmployee.Supervisor = Supervisor;

  // Call the true implementation.
  InsertNewEmployee(tempEmployee);
}

public static void InsertNewEmployee(NorthwindEmployee ne) {
  bool retval = ne.Save();
  if (! retval) { throw new NorthwindDataException("InsertNewEmployee failed."); }
}
' This InsertNewEmployeeWrapper method is a wrapper method that enables
' the use of ObjectDataSource and InsertParameters, without
' substantially rewriting the true implementation for the NorthwindEmployee
' or the EmployeeLogic objects.
'
' The parameters to the method must be named the same as the
' DataControlFields used by the GridView or DetailsView controls.
Public Shared Sub InsertNewEmployeeWrapper(FirstName As String, LastName As String, Title As String, Courtesy As String, Supervisor As Integer)
   ' Build the NorthwindEmployee object and
   ' call the true  implementation.
   Dim tempEmployee As New NorthwindEmployee()

   tempEmployee.FirstName = FirstName
   tempEmployee.LastName = LastName
   tempEmployee.Title = Title
   tempEmployee.Courtesy = Courtesy
   tempEmployee.Supervisor = Supervisor

   ' Call the true implementation.
   InsertNewEmployee(tempEmployee)
End Sub


Public Shared Sub InsertNewEmployee(ne As NorthwindEmployee)
   Dim retval As Boolean = ne.Save()
   If Not retval Then
      Throw New NorthwindDataException("InsertNewEmployee failed.")
   End If
End Sub

Açıklamalar

Koleksiyonda InsertParameters yer alan parametrelerin adları ve türleri, özellik imzası tarafından belirtilen yöntemdeki parametrelerin adlarıyla ve türleriyle InsertMethod eşleşmelidir. ve DetailsViewObjectDataSource gibi GridView parametreleri sağlayan veriye bağlı denetimlerle çalışırken, denetim koleksiyonda açıkça belirtilen tüm parametreleri veriye bağlı denetim tarafından sağlanan parametrelerle otomatik olarak birleştirir. Daha fazla bilgi için bkz. InsertMethod.

Şunlara uygulanır

Ayrıca bkz.