ObjectDataSourceView.InsertParameters Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 int
doğru şekilde string
geç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.