DetailsView.ModeChanging Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит при попытке перехода элемента управления DetailsView между режимами редактирования, вставки и доступа только для чтения перед обновлением значения свойства CurrentMode.
public:
event System::Web::UI::WebControls::DetailsViewModeEventHandler ^ ModeChanging;
public event System.Web.UI.WebControls.DetailsViewModeEventHandler ModeChanging;
member this.ModeChanging : System.Web.UI.WebControls.DetailsViewModeEventHandler
Public Custom Event ModeChanging As DetailsViewModeEventHandler
Тип события
Примеры
В следующем примере кода показано, как использовать ModeChanging событие для отключения функции разбиения по страницам DetailsView , когда элемент управления находится в режиме редактирования.
<%@ 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_ModeChanging(Object sender, DetailsViewModeEventArgs e)
{
// Disable the paging feature in edit mode.
if (e.NewMode == DetailsViewMode.Edit)
{
CustomerDetailView.AllowPaging = false;
}
else
{
CustomerDetailView.AllowPaging = true;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView ModeChanging Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView ModeChanging Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogeneraterows="true"
autogenerateeditbutton="true"
allowpaging="true"
onmodechanging="CustomerDetailView_ModeChanging"
runat="server">
<fieldheaderstyle backcolor="Navy"
forecolor="White"/>
</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_ModeChanging(ByVal sender As Object, ByVal e As DetailsViewModeEventArgs)
' Disable the paging feature in edit mode.
If e.NewMode = DetailsViewMode.Edit Then
CustomerDetailView.AllowPaging = False
Else
CustomerDetailView.AllowPaging = True
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsView ModeChanging Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView ModeChanging Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogeneraterows="true"
autogenerateeditbutton="true"
allowpaging="true"
onmodechanging="CustomerDetailView_ModeChanging"
runat="server">
<fieldheaderstyle backcolor="Navy"
forecolor="White"/>
</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>
Комментарии
Событие ModeChanging возникает, когда DetailsView элемент управления пытается изменить режим редактирования, вставки и режима только для чтения, но до CurrentMode обновления свойства. Это позволяет предоставить обработчик событий, который выполняет пользовательскую подпрограмму, например отмену изменения режима, при каждом возникновении этого события.
Объект DetailsViewModeEventArgs передается обработчику событий, который позволяет определить новый режим, определить, было ли изменение режима результатом отмены пользователем операции редактирования, или отменить изменение режима. Чтобы определить новый режим, используйте NewMode свойство . Чтобы определить, было ли изменение режима результатом отмены пользователем операции редактирования, используйте CancelingEdit свойство . Вы можете отменить изменение режима, задав для Cancel свойства значение true
.
Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.