CommandField Konstruktor
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowe wystąpienie klasy CommandField.
public:
CommandField();
public CommandField ();
Public Sub New ()
Przykłady
Poniższy przykład kodu przedstawia sposób dynamicznego dodawania kolumny pola do kontrolki za pomocą konstruktora CommandField GridView .
<%@ 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 Page_Load(Object sender, EventArgs e)
{
// Dynamically generated field columns need to be created only
// the first time the page is loaded.
if (!IsPostBack)
{
// Create a CommandField object to display a Select button
// for each record in the GridView control.
CommandField selectCommandField = new CommandField();
selectCommandField.ShowSelectButton = true;
selectCommandField.SelectText = "Select Company";
// Create a BoundField object to display the company names.
BoundField lastNameBoundField = new BoundField();
lastNameBoundField.DataField = "au_lname";
lastNameBoundField.HeaderText = "Last Name";
// Create a BoundField object to display a customer's company name.
BoundField nameBoundField = new BoundField();
nameBoundField.DataField = "CompanyName";
nameBoundField.HeaderText = "Company Name";
// Create a BoundField object to display a customer's city.
BoundField cityBoundField = new BoundField();
cityBoundField.DataField = "City";
cityBoundField.HeaderText = "City";
// Add the field columns to the ColumnFields collection of the
// GridView control.
CustomersGridView.Columns.Add(selectCommandField);
CustomersGridView.Columns.Add(nameBoundField);
CustomersGridView.Columns.Add(cityBoundField);
}
}
void CustomersGridView_SelectedIndexChanged(Object sender, EventArgs e)
{
// Get the value of the company name and city from the appropriate cells.
String companyName = CustomersGridView.SelectedRow.Cells[1].Text;
String city = CustomersGridView.SelectedRow.Cells[2].Text;
Message.Text = "You selected " + companyName + " located in " + city + ".";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CommandField Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>CommandField Constructor Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="False"
onselectedindexchanged="CustomersGridView_SelectedIndexChanged"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSqlDataSource"
selectcommand="Select [CustomerID], [CompanyName], [City] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
<%@ Page language="VB" AutoEventWireup="False" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
' Dynamically generated field columns need to be created only
' the first time the page is loaded.
If Not IsPostBack Then
' Create a CommandField object to display a Select button
' for each record in the GridView control.
Dim selectCommandField As New CommandField()
selectCommandField.ShowSelectButton = True
selectCommandField.SelectText = "Select Company"
' Create a BoundField object to display the company names.
Dim lastNameBoundField As New BoundField()
lastNameBoundField.DataField = "au_lname"
lastNameBoundField.HeaderText = "Last Name"
' Create a BoundField object to display a customer's company name.
Dim nameBoundField As New BoundField()
nameBoundField.DataField = "CompanyName"
nameBoundField.HeaderText = "Company Name"
' Create a BoundField object to display a customer's city.
Dim cityBoundField As New BoundField()
cityBoundField.DataField = "City"
cityBoundField.HeaderText = "City"
' Add the field columns to the ColumnFields collection of the
' GridView control.
CustomersGridView.Columns.Add(selectCommandField)
CustomersGridView.Columns.Add(nameBoundField)
CustomersGridView.Columns.Add(cityBoundField)
End If
End Sub
Sub CustomersGridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles CustomersGridView.SelectedIndexChanged
' Get the value of the company name and city from the appropriate cells.
Dim companyName As String = CustomersGridView.SelectedRow.Cells(1).Text
Dim city As String = CustomersGridView.SelectedRow.Cells(2).Text
Message.Text = "You selected " & companyName & " located in " & city & "."
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CommandField Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>CommandField Constructor Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="False"
runat="server">
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSqlDataSource"
selectcommand="Select [CustomerID], [CompanyName], [City] From [Customers]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
Uwagi
Użyj tego konstruktora, aby zainicjować nowe wystąpienie CommandField klasy. Ten konstruktor jest często używany podczas dodawania pól do dynamicznie utworzonej kontrolki powiązanej z danymi.
Aby dynamicznie dodać CommandField pole do kontrolki powiązanej z danymi, utwórz nowy CommandField obiekt, ustaw jego właściwości, a następnie dodaj je do kolekcji pól powiązanej z danymi. Jeśli na przykład używasz kontrolki GridView , dodaj CommandField obiekt do Columns kolekcji.
Uwaga
Mimo że można dynamicznie dodawać pola do kontrolki powiązanej z danymi, zdecydowanie zaleca się, aby pola mogły być zadeklarowane statycznie, a następnie wyświetlane lub ukryte odpowiednio. Statyczne deklarowanie wszystkich pól zmniejsza rozmiar stanu widoku dla nadrzędnej kontrolki powiązanej z danymi.