DetailsView.ModeChanged Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит при попытке перехода элемента управления DetailsView между режимами редактирования, вставки и доступа только для чтения после обновления значения свойства CurrentMode.
public:
event EventHandler ^ ModeChanged;
public event EventHandler ModeChanged;
member this.ModeChanged : EventHandler
Public Custom Event ModeChanged As EventHandler
Тип события
Примеры
В следующем примере кода показано, как использовать ModeChanged событие для отображения текущего режима в строке заголовка.
<%@ 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 CustomerDetailView_ModeChanged(Object sender, EventArgs e)
{
// Display the current mode in the header row.
switch (CustomerDetailView.CurrentMode)
{
case DetailsViewMode.Edit:
CustomerDetailView.HeaderText = "Edit Mode";
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Red;
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.LightGray;
break;
case DetailsViewMode.Insert:
CustomerDetailView.HeaderText = "Insert Mode";
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Green;
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.Yellow;
break;
case DetailsViewMode.ReadOnly:
CustomerDetailView.HeaderText = "Read-Only Mode";
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Blue;
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.White;
break;
default:
CustomerDetailView.HeaderText = "Error!";
break;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView ModeChanged Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView ModeChanged Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogeneraterows="true"
autogenerateeditbutton="true"
autogenerateinsertbutton="true"
allowpaging="true"
headertext="Read-Only Mode"
onmodechanged="CustomerDetailView_ModeChanged"
runat="server">
<fieldheaderstyle backcolor="Navy"
forecolor="White"/>
<headerstyle forecolor="Blue"/>
</asp:detailsview>
<!-- 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="DetailsViewSource" runat="server"
ConnectionString=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
SelectCommand="Select [CustomerID], [CompanyName],
[Address], [City], [PostalCode], [Country] From
[Customers]">
</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 CustomerDetailView_ModeChanged(ByVal sender As Object, ByVal e As EventArgs)
' Display the current mode in the header row.
Select Case CustomerDetailView.CurrentMode
Case DetailsViewMode.Edit
CustomerDetailView.HeaderText = "Edit Mode"
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Red
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.LightGray
Case DetailsViewMode.Insert
CustomerDetailView.HeaderText = "Insert Mode"
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Green
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.Yellow
Case DetailsViewMode.ReadOnly
CustomerDetailView.HeaderText = "Read-Only Mode"
CustomerDetailView.HeaderStyle.ForeColor = System.Drawing.Color.Blue
CustomerDetailView.HeaderStyle.BackColor = System.Drawing.Color.White
Case Else
CustomerDetailView.HeaderText = "Error!"
End Select
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView ModeChanged Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView ModeChanged Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogeneraterows="true"
autogenerateeditbutton="true"
autogenerateinsertbutton="true"
allowpaging="true"
headertext="Read-Only Mode"
onmodechanged="CustomerDetailView_ModeChanged"
runat="server">
<fieldheaderstyle backcolor="Navy"
forecolor="White"/>
<headerstyle forecolor="Blue"/>
</asp:detailsview>
<!-- 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="DetailsViewSource" runat="server"
ConnectionString=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
SelectCommand="Select [CustomerID], [CompanyName],
[Address], [City], [PostalCode], [Country] From
[Customers]">
</asp:SqlDataSource>
</form>
</body>
</html>
Комментарии
Событие ModeChanged возникает, когда DetailsView элемент управления пытается изменить режим правки, вставки и режима только для чтения, но после CurrentMode обновления свойства. Это позволяет предоставить обработчик событий, который выполняет пользовательскую подпрограмму, например синхронизацию DetailsView элемента управления с другим элементом управления, при каждом возникновении этого события.
Дополнительные сведения об обработке событий см. в разделе Обработка и создание событий.