DetailsViewUpdateEventArgs 类    
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 ItemUpdating 事件提供数据。
public ref class DetailsViewUpdateEventArgs : System::ComponentModel::CancelEventArgspublic class DetailsViewUpdateEventArgs : System.ComponentModel.CancelEventArgstype DetailsViewUpdateEventArgs = class
    inherit CancelEventArgsPublic Class DetailsViewUpdateEventArgs
Inherits CancelEventArgs- 继承
示例
下面的代码示例演示如何使用 DetailsViewUpdateEventArgs 传递给 事件的事件处理程序 ItemUpdating 的对象来验证用户输入的值。
<%@ 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 CustomerDetailsView_ItemUpdating(Object sender, 
      DetailsViewUpdateEventArgs e)
    {
        // Validate the field values entered by the user. This
        // example determines whether the user left any fields
        // empty. Use the NewValues property to access the new 
        // values entered by the user.
        ArrayList emptyFieldList = 
          ValidateFields((IOrderedDictionary)e.NewValues);
        if (emptyFieldList.Count > 0)
        {
            // The user left some fields empty. 
            // Display an error message.
            // Use the Keys property to retrieve the key field value.
            String keyValue = e.Keys["CustomerID"].ToString();
            MessageLabel.Text = 
              "You must enter a value for all fields of record " +
              keyValue + ".<br/>The following fields are missing:<br/><br/>";
            // Display the missing fields.
            foreach (String value in emptyFieldList)
            {
                // Use the OldValues property access the original
                // value of a field.
                MessageLabel.Text += value + " - Original Value = " +
                  e.OldValues[value].ToString() + "<br />";
            }
            // Cancel the update operation.
            e.Cancel = true;
        }
        else
        {
            // The field values passed validation. Clear the
            // error message label.
            MessageLabel.Text = "";
        }
    }
    ArrayList ValidateFields(IOrderedDictionary list)
    {
        // Create an ArrayList object to store the
        // names of any empty fields.
        ArrayList emptyFieldList = new ArrayList();
        // Iterate though the field values entered by
        // the user and check for an empty field. Empty
        // fields contain a null value.
        foreach (DictionaryEntry entry in list)
        {
            if (entry.Value == null)
            {
                // Add the field name to the ArrayList object.
                emptyFieldList.Add(entry.Key.ToString());
            }
        }
        return emptyFieldList;
    }
    void CustomerDetailsView_ModeChanging(Object sender, 
      DetailsViewModeEventArgs e)
    {
        if (e.CancelingEdit)
        {
            // The user canceled the update operation.
            // Clear the error message label.
            MessageLabel.Text = "";
        }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsViewUpdateEventArgs Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>DetailsViewUpdateEventArgs Example</h3>
                       
        <asp:detailsview id="CustomerDetailsView"
          datasourceid="DetailsViewSource"
          autogeneraterows="true"
          autogenerateeditbutton="true"  
          allowpaging="true"
          datakeynames="CustomerID" 
          onitemupdating="CustomerDetailsView_ItemUpdating"
          onmodechanging="CustomerDetailsView_ModeChanging" 
          runat="server">
            
          <pagersettings position="Bottom"/> 
                    
        </asp:detailsview>
        
        <br/>
        
        <asp:label id="MessageLabel"
          forecolor="Red"
          runat="server"/>
            
        <!-- 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"
          selectcommand="Select [CustomerID], [CompanyName], [Address], 
            [City], [PostalCode], [Country] From [Customers]"
          updatecommand="Update [Customers] Set 
          [CompanyName]=@CompanyName, [Address]=@Address, 
          [City]=@City, [PostalCode]=@PostalCode, 
          [Country]=@Country 
          Where [CustomerID]=@CustomerID"
          connectionstring=
          "<%$ ConnectionStrings:NorthWindConnectionString%>" 
          runat="server"/>
            
      </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 CustomerDetailsView_ItemUpdating(ByVal sender As Object, _
    ByVal e As DetailsViewUpdateEventArgs)
    ' Validate the field values entered by the user. This
    ' example determines whether the user left any fields
    ' empty. Use the NewValues property to access the new 
    ' values entered by the user.
    Dim emptyFieldList As ArrayList = _
      ValidateFields(CType(e.NewValues, IOrderedDictionary))
    If emptyFieldList.Count > 0 Then
      ' The user left some fields empty. Display an error message.
      
      ' Use the Keys property to retrieve the key field value.
      Dim keyValue As String = e.Keys("CustomerID").ToString()
      MessageLabel.Text = _
        "You must enter a value for all fields of record " & _
        keyValue & ".<br/>The following fields are missing:<br/><br/>"
      ' Display the missing fields.
      Dim value As String
      For Each value In emptyFieldList
      
        ' Use the OldValues property access the original value
        ' of a field.
        MessageLabel.Text &= value & " - Original Value = " & _
          e.OldValues(value).ToString() & "<br />"
        
      Next
      ' Cancel the update operation.
      e.Cancel = True
    Else
    
      ' The field values passed validation. Clear the
      ' error message label.
      MessageLabel.Text = ""
      
    End If
  End Sub
    Function ValidateFields(ByVal list As IOrderedDictionary) _
      As ArrayList
    
        ' Create an ArrayList object to store the
        ' names of any empty fields.
        Dim emptyFieldList As New ArrayList()
        ' Iterate though the field values entered by
        ' the user and check for an empty field. Empty
        ' fields contain a null value.
        Dim entry As DictionaryEntry
    
        For Each entry In list
    
            If entry.Value Is Nothing Then
      
                ' Add the field name to the ArrayList object.
                emptyFieldList.Add(entry.Key.ToString())
        
            End If
        Next
        Return emptyFieldList
  
    End Function
  Sub CustomerDetailsView_ModeChanging(ByVal sender As Object, ByVal e As DetailsViewModeEventArgs)
  
    If e.CancelingEdit Then
      
      ' The user canceled the update operation.
      ' Clear the error message label.
      MessageLabel.Text = ""
    
    End If
    
  End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsViewUpdateEventArgs Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>DetailsViewUpdateEventArgs Example</h3>
                       
        <asp:detailsview id="CustomerDetailsView"
          datasourceid="DetailsViewSource"
          autogeneraterows="true"
          autogenerateeditbutton="true"  
          allowpaging="true"
          datakeynames="CustomerID" 
          onitemupdating="CustomerDetailsView_ItemUpdating"
          onmodechanging="CustomerDetailsView_ModeChanging" 
          runat="server">
            
          <pagersettings position="Bottom"/> 
                    
        </asp:detailsview>
        
        <br/>
        
        <asp:label id="MessageLabel"
          forecolor="Red"
          runat="server"/>
            
        <!-- 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"
          selectcommand="Select [CustomerID], [CompanyName], [Address], 
          [City], [PostalCode], [Country] From [Customers]"
          updatecommand="Update [Customers] Set 
          [CompanyName]=@CompanyName, [Address]=@Address, 
          [City]=@City, [PostalCode]=@PostalCode, 
          [Country]=@Country 
          Where [CustomerID]=@CustomerID"
          connectionstring=
          "<%$ ConnectionStrings:NorthWindConnectionString%>" 
          runat="server"/>
            
      </form>
  </body>
</html>
注解
              DetailsView当更新按钮 (按钮属性CommandName设置为“Update”的按钮时,控件将引发 ItemUpdating 该事件) 在控件中单击,但在控件更新记录之前DetailsView。 这允许你提供一个事件处理程序,该处理程序执行自定义例程,例如,每当发生此事件时,在数据源中更新记录的值之前对记录的值进行 HTML 编码。
对象 DetailsViewUpdateEventArgs 传递给事件处理程序,该处理程序允许您确定发送到 DetailsView 控件的可选命令参数的值,并指示是否应取消更新操作。 若要确定命令参数的值,请使用 CommandArgument 属性。 若要取消更新操作,请将 Cancel 属性设置为 true。 还可以使用 Keys 和 NewValues 属性读取或修改用户输入的新值。 属性 Keys 包含键字段,而 NewValues 属性包含非键字段。 如果需要访问原始非键字段值,请使用 OldValues 属性。
有关如何处理事件的详细信息,请参阅 处理和引发事件。
有关 DetailsViewUpdateEventArgs 类的实例的初始属性值列表,请参见 DetailsViewUpdateEventArgs 构造函数。
构造函数
| DetailsViewUpdateEventArgs(Object) | 初始化 DetailsViewUpdateEventArgs 类的新实例。 | 
属性
| Cancel | 获取或设置指示是否应取消事件的值。(继承自 CancelEventArgs) | 
| CommandArgument | 获取传递给 DetailsView 控件的更新操作命令参数。 | 
| Keys | 获取一个字典,其中包含要更新的记录的键字段名称/值对。 | 
| NewValues | 获取包含要插入的记录所对应的字段名/值对的字典。 | 
| OldValues | 获取一个字典,其中包含要更新的记录的原始字段名称/值对。 | 
方法
| Equals(Object) | 确定指定对象是否等于当前对象。(继承自 Object) | 
| GetHashCode() | 作为默认哈希函数。(继承自 Object) | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| MemberwiseClone() | 创建当前 Object 的浅表副本。(继承自 Object) | 
| ToString() | 返回表示当前对象的字符串。(继承自 Object) |