TemplateField.InsertItemTemplate Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger mallen för att visa ett objekt i infogningsläge i ett 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
Egenskapsvärde
Ett ITemplate-implementerat objekt som innehåller mallen för att visa ett objekt i infogningsläge i en TemplateField. Standardvärdet är null, vilket anger att den här egenskapen inte har angetts.
- Attribut
Exempel
Följande kodexempel visar hur du använder InsertItemTemplate egenskapen för att skapa en anpassad mall för ett objekt i infogningsläge på en TemplateField fältrad i en DetailsView kontroll. Mallen visar en DropDownList kontroll som gör att användaren kan välja ett värde från en fördefinierad lista.
<%@ 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>
Kommentarer
Använd egenskapen InsertItemTemplate för att ange det anpassade innehåll som visas för ett objekt i infogningsläge i ett TemplateField objekt. Definiera innehållet genom att skapa en mall som anger hur objektet i infogningsläge återges.
Om du vill ange en mall börjar du med att öppna och stänga <InsertItemTemplate> taggar mellan inledande och avslutande taggar för elementet <TemplateField> . Lägg sedan till det anpassade innehållet mellan de inledande och avslutande <InsertItemTemplate> taggarna. Innehållet kan vara så enkelt som oformaterad text eller mer komplext (till exempel bädda in andra kontroller i mallen).
För att programmatiskt få åtkomst till en kontroll som definierats i en mall ska du först avgöra vilket objekt i den databundna kontrollen som TableCell innehåller kontrollen. Använd Controls sedan objektets TableCell samling för att komma åt kontrollen. Du kan också använda FindControl -metoden för TableCell objektet för att hitta kontrollen, om kontrollen har en ID angiven egenskap.
Note
Alla databundna kontroller stöder inte den här mallen Den här mallen stöds endast av databundna kontroller som gör att du kan infoga en post, till exempel DetailsView kontrollen.