TemplateField.InsertItemTemplate Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen der Vorlage zum Anzeigen eines Elements im Einfügemodus in einem TemplateField Objekt.
public:
virtual property System::Web::UI::ITemplate ^ InsertItemTemplate { System::Web::UI::ITemplate ^ get(); void set(System::Web::UI::ITemplate ^ value); };
[System.ComponentModel.Browsable(false)]
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
[System.Web.UI.TemplateContainer(typeof(System.Web.UI.IDataItemContainer), System.ComponentModel.BindingDirection.TwoWay)]
public virtual System.Web.UI.ITemplate InsertItemTemplate { get; set; }
[<System.ComponentModel.Browsable(false)>]
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
[<System.Web.UI.TemplateContainer(typeof(System.Web.UI.IDataItemContainer), System.ComponentModel.BindingDirection.TwoWay)>]
member this.InsertItemTemplate : System.Web.UI.ITemplate with get, set
Public Overridable Property InsertItemTemplate As ITemplate
Eigenschaftswert
Ein implementiertes ITemplateObjekt, das die Vorlage zum Anzeigen eines Elements im Einfügemodus in einer .TemplateField Der Standardwert ist null, der angibt, dass diese Eigenschaft nicht festgelegt ist.
- Attribute
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Die InsertItemTemplate Eigenschaft verwendet wird, um eine benutzerdefinierte Vorlage für ein Element im Einfügemodus in einer Feldzeile in einem TemplateFieldDetailsView Steuerelement zu erstellen. Die Vorlage zeigt ein DropDownList Steuerelement an, mit dem der Benutzer einen Wert aus einer vordefinierten Liste auswählen kann.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void StoresGridView_SelectedIndexChanged(Object sender, EventArgs e)
{
// Set the DataItemIndex property of the DetailsView control to display
// the record selected from the GridView control.
// StoresDetailView.DataItemIndex = StoresGridView.SelectedIndex;
}
void StoresDetailView_ItemInserting(Object sender, DetailsViewInsertEventArgs e)
{
// Get the state value from the DropDownList control in the
// DetailsView control.
String state = GetState();
// Add the state to the dictionary of values to
// insert into the database.
e.Values["state"] = state;
}
void StoresDetailView_ItemInserted (Object sender, DetailsViewInsertedEventArgs e)
{
// Refresh the GridView control after a new record is inserted.
StoresGridView.DataBind ();
}
String GetState()
{
String state;
// Get the DropDownList control that contains the state value
// in the DetailsView control.
DropDownList list = (DropDownList)StoresDetailView.Rows[4].FindControl("StateList");
if (list != null)
{
// Get the selected value of the DropDownList control.
state = list.SelectedItem.Text;
}
else
{
// Set the state to an empty string ("").
state = "";
}
return state;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TemplateField InsertItemTemplate Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TemplateField InsertItemTemplate Example</h3>
<table cellspacing="10">
<tr>
<td>
<asp:gridview id="StoresGridView"
datasourceid="StoresSqlDataSource"
autogeneratecolumns="false"
autogenerateselectbutton="true"
datakeynames="stor_id"
onselectedindexchanged="StoresGridView_SelectedIndexChanged"
runat="server">
<headerstyle backcolor="Blue"
forecolor="White"/>
<columns>
<asp:boundfield datafield="stor_name"
headertext="Store Name"/>
<asp:boundfield datafield="stor_address"
headertext="Address"/>
<asp:boundfield datafield="city"
headertext="City"/>
<asp:boundfield datafield="state"
headertext="State"/>
<asp:boundfield datafield="zip"
headertext="ZIP Code"/>
</columns>
</asp:gridview>
</td>
<td valign="top">
<asp:detailsview id="StoresDetailView"
datasourceid="StoresDetailsSqlDataSource"
autogenerateinsertbutton="true"
autogeneraterows="false"
datakeynames="stor_id"
gridlines="Both"
oniteminserting="StoresDetailView_ItemInserting"
oniteminserted="StoresDetailView_ItemInserted"
runat="server">
<headerStyle backcolor="Navy"
forecolor="White"/>
<Fields>
<asp:boundfield datafield="stor_id"
headertext="Store ID"/>
<asp:boundfield datafield="stor_name"
headertext="Store Name"/>
<asp:boundfield datafield="stor_address"
headertext="Address"/>
<asp:boundfield datafield="city"
headertext="City"/>
<asp:templatefield headertext="State">
<itemtemplate>
<%#Eval("state")%>
</itemtemplate>
<insertitemtemplate>
<asp:dropdownlist id="StateList"
datasourceid="StateSqlDataSource"
datatextfield="state"
runat="server"/>
</insertitemtemplate>
</asp:templatefield>
<asp:boundfield datafield="zip"
headertext="ZIP Code"/>
</Fields>
</asp:detailsview>
</td>
</tr>
</table>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Pubs sample database. -->
<asp:sqldatasource id="StoresSqlDataSource"
selectcommand="SELECT [stor_id], [stor_name], [stor_address], [city], [state], [zip] FROM [stores]"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
<asp:sqldatasource id="StoresDetailsSqlDataSource"
selectcommand="SELECT [stor_id], [stor_name], [stor_address], [city], [state], [zip] FROM [stores]"
insertcommand="INSERT INTO stores([stor_id], [stor_name], [stor_address], [city], [state], [zip]) VALUES (@stor_id, @stor_name, @stor_address, @city, @state, @zip)"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
<!-- For this example, the states are retrieved from the -->
<!-- state field. For your application, you should use a -->
<!-- more complete source for the state values. -->
<asp:sqldatasource id="StateSqlDataSource"
selectcommand="SELECT Distinct [state] FROM [stores]"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub StoresGridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
' Set the DataItemIndex property of the DetailsView control to display
' the record selected from the GridView control.
' StoresDetailView.DataItem = StoresGridView.SelectedIndex
End Sub
Sub StoresDetailView_ItemInserting(ByVal sender As Object, ByVal e As DetailsViewInsertEventArgs)
' Get the state value from the DropDownList control in the
' DetailsView control.
Dim state As String = GetState()
' Add the state to the dictionary of values to
' insert into the database.
e.Values("state") = state
End Sub
Sub StoresDetailView_ItemInserted(ByVal sender As Object, ByVal e As DetailsViewInsertedEventArgs)
' Refresh the GridView control after a new record is inserted.
StoresGridView.DataBind()
End Sub
Function GetState() As String
Dim state As String
' Get the DropDownList control that contains the state value
' in the DetailsView control.
Dim list As DropDownList = CType(StoresDetailView.Rows(4).FindControl("StateList"), DropDownList)
If Not list Is Nothing Then
' Get the selected value of the DropDownList control.
state = list.SelectedItem.Text
Else
' Set the state to an empty string ("").
state = ""
End If
Return state
End Function
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TemplateField InsertItemTemplate Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TemplateField InsertItemTemplate Example</h3>
<table cellspacing="10">
<tr>
<td>
<asp:gridview id="StoresGridView"
datasourceid="StoresSqlDataSource"
autogeneratecolumns="false"
autogenerateselectbutton="true"
datakeynames="stor_id"
onselectedindexchanged="StoresGridView_SelectedIndexChanged"
runat="server">
<headerstyle backcolor="Blue"
forecolor="White"/>
<columns>
<asp:boundfield datafield="stor_name"
headertext="Store Name"/>
<asp:boundfield datafield="stor_address"
headertext="Address"/>
<asp:boundfield datafield="city"
headertext="City"/>
<asp:boundfield datafield="state"
headertext="State"/>
<asp:boundfield datafield="zip"
headertext="ZIP Code"/>
</columns>
</asp:gridview>
</td>
<td valign="top">
<asp:detailsview id="StoresDetailView"
datasourceid="StoresDetailsSqlDataSource"
autogenerateinsertbutton="true"
autogeneraterows="false"
datakeynames="stor_id"
gridlines="Both"
oniteminserting="StoresDetailView_ItemInserting"
oniteminserted="StoresDetailView_ItemInserted"
runat="server">
<headerstyle backcolor="Navy"
forecolor="White"/>
<fields>
<asp:boundfield datafield="stor_id"
headertext="Store ID"/>
<asp:boundfield datafield="stor_name"
headertext="Store Name"/>
<asp:boundfield datafield="stor_address"
headertext="Address"/>
<asp:boundfield datafield="city"
headertext="City"/>
<asp:templatefield headertext="State">
<itemtemplate>
<%#Eval("state")%>
</itemtemplate>
<insertitemtemplate>
<asp:dropdownlist id="StateList"
datasourceid="StateSqlDataSource"
datatextfield="state"
runat="server"/>
</insertitemtemplate>
</asp:templatefield>
<asp:boundfield datafield="zip"
headertext="ZIP Code"/>
</fields>
</asp:detailsview>
</td>
</tr>
</table>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Pubs sample database. -->
<asp:sqldatasource id="StoresSqlDataSource"
selectcommand="SELECT [stor_id], [stor_name], [stor_address], [city], [state], [zip] FROM [stores]"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
<asp:sqldatasource id="StoresDetailsSqlDataSource"
selectcommand="SELECT [stor_id], [stor_name], [stor_address], [city], [state], [zip] FROM [stores]"
insertcommand="INSERT INTO stores([stor_id], [stor_name], [stor_address], [city], [state], [zip]) VALUES (@stor_id, @stor_name, @stor_address, @city, @state, @zip)"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
<!-- For this example, the states are retrieved from the -->
<!-- state field. For your application, you should use a -->
<!-- more complete source for the state values. -->
<asp:sqldatasource id="StateSqlDataSource"
selectcommand="SELECT Distinct [state] FROM [stores]"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
Hinweise
Verwenden Sie die InsertItemTemplate Eigenschaft, um den benutzerdefinierten Inhalt anzugeben, der für ein Element im Einfügemodus in einem TemplateField Objekt angezeigt wird. Definieren Sie den Inhalt, indem Sie eine Vorlage erstellen, die angibt, wie das Element im Einfügemodus gerendert wird.
Um eine Vorlage anzugeben, platzieren Sie zuerst öffnende und schließende <InsertItemTemplate> Tags zwischen den öffnenden und schließenden Tags des <TemplateField> Elements. Fügen Sie als Nächstes den benutzerdefinierten Inhalt zwischen den öffnenden und schließenden <InsertItemTemplate> Tags hinzu. Der Inhalt kann so einfach wie Nur-Text oder komplexer sein (z. B. Einbetten anderer Steuerelemente in die Vorlage).
Um programmgesteuert auf ein steuerelement zuzugreifen, das in einer Vorlage definiert ist, bestimmen Sie zuerst, welches TableCell Objekt im datengebundenen Steuerelement das Steuerelement enthält. Verwenden Sie als Nächstes die Controls Auflistung des TableCell Objekts, um auf das Steuerelement zuzugreifen. Sie können auch die FindControl Methode des TableCell Objekts verwenden, um das Steuerelement zu finden, wenn das Steuerelement über eine ID angegebene Eigenschaft verfügt.
Hinweis
Nicht alle datengebundenen Steuerelemente unterstützen diese Vorlage. Diese Vorlage wird nur von datengebundenen Steuerelementen unterstützt, mit denen Sie einen Datensatz einfügen können, z. B. das DetailsView Steuerelement.