ObjectDataSourceView.Updating Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre antes de uma operação de Update.
public:
event System::Web::UI::WebControls::ObjectDataSourceMethodEventHandler ^ Updating;
public event System.Web.UI.WebControls.ObjectDataSourceMethodEventHandler Updating;
member this.Updating : System.Web.UI.WebControls.ObjectDataSourceMethodEventHandler
Public Custom Event Updating As ObjectDataSourceMethodEventHandler
Tipo de evento
Exemplos
O exemplo de código a seguir demonstra como usar um DropDownList controle, TextBox controles e vários controles ObjectDataSource para atualizar dados. O DropDownList exibe o nome de um NorthwindEmployee
, enquanto os TextBox controles são usados para inserir e atualizar informações de endereço. Como a UpdateParameters coleção contém um ControlParameter objeto associado ao valor selecionado do DropDownList, o botão que dispara a Update operação é habilitado somente depois que um funcionário é selecionado.
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<%@ Import namespace="Samples.AspNet.CS" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
// Add parameters and initialize the user interface
// only if an employee is selected.
private void Page_Load(object sender, EventArgs e)
{
// Be sure the text boxes are initialized with
// data from the currently selected employee.
NorthwindEmployee selectedEmployee = EmployeeLogic.GetEmployee(DropDownList1.SelectedValue);
if (selectedEmployee != null) {
AddressBox.Text = selectedEmployee.Address;
CityBox.Text = selectedEmployee.City;
PostalCodeBox.Text = selectedEmployee.PostalCode;
Button1.Enabled = true;
}
else {
Button1.Enabled = false;
}
}
// Press the button to update.
private void Btn_UpdateEmployee (object sender, CommandEventArgs e) {
ObjectDataSource2.Update();
}
// Dynamically add parameters to the InputParameters collection.
private void NorthwindEmployeeUpdating(object source, ObjectDataSourceMethodEventArgs e) {
// The names of the parameters are the same as
// the variable names for the method that is invoked to
// perform the Update. The InputParameters collection is
// an IDictionary collection of name/value pairs,
// not a ParameterCollection.
e.InputParameters.Add("anID", DropDownList1.SelectedValue);
e.InputParameters.Add("anAddress" ,AddressBox.Text);
e.InputParameters.Add("aCity" ,CityBox.Text);
e.InputParameters.Add("aPostalCode",PostalCodeBox.Text);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - C# Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<!-- The DropDownList is bound to the first ObjectDataSource. -->
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetAllEmployees"
typename="Samples.AspNet.CS.EmployeeLogic" />
<p><asp:dropdownlist
id="DropDownList1"
runat="server"
datasourceid="ObjectDataSource1"
datatextfield="FullName"
datavaluefield="EmpID"
autopostback="True" /></p>
<!-- The second ObjectDataSource performs the Update. This
preserves the state of the DropDownList, which otherwise
would rebind when the DataSourceChanged event is
raised as a result of an Update operation. -->
<asp:objectdatasource
id="ObjectDataSource2"
runat="server"
updatemethod="UpdateEmployeeWrapper"
onupdating="NorthwindEmployeeUpdating"
typename="Samples.AspNet.CS.EmployeeLogic" />
<p><asp:textbox
id="AddressBox"
runat="server" /></p>
<p><asp:textbox
id="CityBox"
runat="server" /></p>
<p><asp:textbox
id="PostalCodeBox"
runat="server" /></p>
<asp:button
id="Button1"
runat="server"
text="Update Employee"
oncommand="Btn_UpdateEmployee" />
</form>
</body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ Page language="vb" %>
<%@ Import namespace="Samples.AspNet.VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
' Add parameters and initialize the user interface
' only if an employee is selected.
Private Sub Page_Load(sender As Object, e As EventArgs)
' Be sure the text boxes are initialized with
' data from the currently selected employee.
Dim selectedEmployee As NorthwindEmployee
selectedEmployee = EmployeeLogic.GetEmployee(DropDownList1.SelectedValue)
If Not selectedEmployee Is Nothing Then
AddressBox.Text = selectedEmployee.Address
CityBox.Text = selectedEmployee.City
PostalCodeBox.Text = selectedEmployee.PostalCode
Button1.Enabled = True
Else
Button1.Enabled = False
End If
End Sub ' Page_Load
' Press the button to update.
Private Sub Btn_UpdateEmployee (sender As Object, e As CommandEventArgs)
ObjectDataSource2.Update()
End Sub ' Btn_UpdateEmployee
' Dynamically add parameters to the InputParameters collection.
Private Sub NorthwindEmployeeUpdating(source As Object, e As ObjectDataSourceMethodEventArgs)
' The names of the parameters are the same as
' the variable names for the method that is invoked to
' perform the Update. The InputParameters collection is
' an IDictionary collection of name/value pairs,
' not a ParameterCollection.
e.InputParameters.Add("anID", DropDownList1.SelectedValue)
e.InputParameters.Add("anAddress" ,AddressBox.Text)
e.InputParameters.Add("aCity" ,CityBox.Text)
e.InputParameters.Add("aPostalCode",PostalCodeBox.Text)
End Sub ' NorthwindEmployeeUpdating
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - VB Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<!-- The DropDownList is bound to the first ObjectDataSource. -->
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetAllEmployees"
typename="Samples.AspNet.VB.EmployeeLogic" />
<p><asp:dropdownlist
id="DropDownList1"
runat="server"
datasourceid="ObjectDataSource1"
datatextfield="FullName"
datavaluefield="EmpID"
autopostback="True" /></p>
<!-- The second ObjectDataSource performs the Update. This
preserves the state of the DropDownList, which otherwise
would rebind when the DataSourceChanged event is
raised as a result of an Update operation. -->
<asp:objectdatasource
id="ObjectDataSource2"
runat="server"
updatemethod="UpdateEmployeeWrapper"
onupdating="NorthwindEmployeeUpdating"
typename="Samples.AspNet.VB.EmployeeLogic" />
<p><asp:textbox
id="AddressBox"
runat="server" /></p>
<p><asp:textbox
id="CityBox"
runat="server" /></p>
<p><asp:textbox
id="PostalCodeBox"
runat="server" /></p>
<asp:button
id="Button1"
runat="server"
text="Update Employee"
oncommand="Btn_UpdateEmployee" />
</form>
</body>
</html>
Comentários
Manipule o Updating evento para executar operações de inicialização adicionais específicas ao seu aplicativo, validar os valores dos parâmetros ou alterar os valores de parâmetro antes que o ObjectDataSource controle execute a Update operação. Os parâmetros estão disponíveis como uma IDictionary coleção, acessada pela InputParameters propriedade , que é exposta pelo ObjectDataSourceMethodEventArgs objeto .
Para obter mais informações sobre como lidar com eventos, consulte Manipulando e levantando eventos.