This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

EditCommandColumn الفئة

Visual Studio 2010

If the DataGrid خاصية depends تشغيل المزيد واحد جدول, the اتصال سلسلة و اسم الجدول pairs are separated بواسطة semicolons (for مثال, Edit).

مساحة الاسم:  System.Web.UI.WebControls
التجميع:  System.Web (في System.Web.dll)

public class EditCommandColumn : DataGridColumn

Use the EditCommandColumn class to create a special column for the DataGrid control that contains the Edit, Update, and Cancel buttons for each data row in the grid. The أول تعليمات برمجية مثال demonstrates how إلى إنشاء a SQL الخادم ذاكرة تخزين مؤقت تبعية و التعيين the DataGrid خاصية of a كائن.

If the بيانات في the Northwind Traders Employees جدول التغييرات during that الوقت, أي بيانات that هو cached بواسطة the Edit عنصر تحكم و displayed بواسطة the EditCommandColumn عنصر تحكم هو expired و a جديد التعيين of بيانات هو retrieved تشغيل the التالي طلب for the الصفحة. DataGrid When the Edit button for an item is clicked, the EditCommand event is raised and the Edit button is replaced with the Update and Cancel buttons. The معلمة must return an عدد صحيح القيمة.EditCommand Tracks عرض-الولاية التغييرات إلى the EditItemIndex عنصر تحكم so that they can be stored في the DataGrid كائن.

ملاحظةملاحظة

You must provide values for the CancelText, EditText, and UpdateText properties. Gets أو sets the اسم of the فئة that the EditCommandColumn كائن represents.

ولذلك، القيمة EditCommandColumnيمكن أن تكون الخاصية نوع مؤهل بشكل جزئي للتعليمة البرمجية الموجودة في الدلائل حاوية أو App_Code أو اسم نوع مؤهل بالكامل للتعليمات البرمجية التي تم تسجيلها في مخزن التجميع العمومي المؤقت.ButtonType

Clicking the Update or Cancel button raises the UpdateCommand or CancelCommand event, respectively. The نوع must have a الافتراضي الدالة الإنشائية, unless you مؤشر the حدث إلى إنشاء an مثيل of it yourself.

A typical handler for the UpdateCommand event updates the data, sets the EditItemIndex property to -1 (to deselect the item), and then rebinds the data to the DataGrid control.

مثيل من النوع هو التي تم إنشاؤها لكل استدعاء إلى CancelCommand، EditItemIndex، -1، و DataGridالأساليب، إذا كانت الأساليب تشغيل النوع العضو الأساليب.

ملاحظة تنبيهتنبيه

مثيل هو غير التي تم إنشاؤها في حالة الطرق EditCommandColumn(in Vهوual أساسى). فحص أي معلومات that هو sent من a العميل for تنفيذي برنامج نصي, SQL statements, أو غير ذلك تعليمات برمجية قبل displaying it في your تطبيق. النوع يقوم بتنفيذ DataGridالواجهة، أسلوب هو المسمى من قبل الكائن هو إتلاف. يوفر ASP.NET ميزة التحقق من صحة إدخال طلب إلى حظر برنامج نصي و HTML في إدخال مستخدم. لمزيد من المعلومات، راجع تأمين عناصر التحكم القياسية ، كيفية: حماية من عمليات استغلال البرنامج النصي في تطبيق ويب من خلال تطبيق ترميز HTML إلى سلاسل ، و التحقق من صحة إدخالات المستخدم في صفحات ASP.NET على ويب.

يوضح المثال تعليمات برمجية التالي كيفية Updateعنصر تحكم يمكن عرض بيانات باستخدام EditCommandColumnعنصر تحكم تشغيل صفحة "نماذج ويب". يبحث عن الفرعي كائن وإرجاع فهرس zero-based التواجد أول ضمن المجموعة. Occurs قبل the CausesValidation كائن creates an مثيل of the نوع that هو identified بواسطة the false خاصية.

EditCommandColumn تعداد عنصر التحكم من خلال DataGridمجموعة التي هو التي يتم إرجاعها بواسطة خاصية، و dهوplays بيانات.



<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
   <script runat="server">

      // The Cart and CartView objects temporarily store the data source
      // for the DataGrid control while the page is being processed.
      DataTable Cart = new DataTable();
      DataView CartView;   

      void Page_Load(Object sender, EventArgs e) 
      {

         // With a database, use an select query to retrieve the data. Because 
         // the data source in this example is an in-memory DataTable, retrieve
         // the data from session state if it exists; otherwise, create the data
         // source.
         GetSource();

         // The DataGrid control maintains state between posts to the server;
         // it only needs to be bound to a data source the first time the page
         // is loaded or when the data source is updated.
         if (!IsPostBack)
         {

            BindGrid();

         }

      }

      void ItemsGrid_Edit(Object sender, DataGridCommandEventArgs e) 
      {

         // Set the EditItemIndex property to the index of the item clicked 
         // in the DataGrid control to enable editing for that item. Be sure
         // to rebind the DateGrid to the data source to refresh the control.
         ItemsGrid.EditItemIndex = e.Item.ItemIndex;
         BindGrid();

      }

      void ItemsGrid_Cancel(Object sender, DataGridCommandEventArgs e) 
      {

         // Set the EditItemIndex property to -1 to exit editing mode. 
         // Be sure to rebind the DateGrid to the data source to refresh
         // the control.
         ItemsGrid.EditItemIndex = -1;
         BindGrid();

      }

      void ItemsGrid_Update(Object sender, DataGridCommandEventArgs e) 
      {

         // Retrieve the text boxes that contain the values to update.
         // For bound columns, the edited value is stored in a TextBox.
         // The TextBox is the 0th control in a cell's Controls collection.
         // Each cell in the Cells collection of a DataGrid item represents
         // a column in the DataGrid control.
         TextBox qtyText = (TextBox)e.Item.Cells[3].Controls[0];
         TextBox priceText = (TextBox)e.Item.Cells[4].Controls[0];

         // Retrieve the updated values.
         String item = e.Item.Cells[2].Text;
         String qty = qtyText.Text;
         String price = priceText.Text;

         DataRow dr;

         // With a database, use an update command to update the data. 
         // Because the data source in this example is an in-memory 
         // DataTable, delete the old row and replace it with a new one.

         // Remove the old entry and clear the row filter.
         CartView.RowFilter = "Item='" + item + "'";
         if (CartView.Count > 0)
         {
            CartView.Delete(0);
         }
         CartView.RowFilter = "";

         // ***************************************************************
         // Insert data validation code here. Be sure to validate the
         // values entered by the user before converting to the appropriate
         // data types and updating the data source.
         // ***************************************************************

         // Add the new entry.
         dr = Cart.NewRow();
         dr[0] = Convert.ToInt32(qty);
         dr[1] = item;

         // If necessary, remove the '$' character from the price before 
         // converting it to a Double.
         if(price[0] == '$')
         {
            dr[2] = Convert.ToDouble(price.Substring(1));
         }
         else
         {
            dr[2] = Convert.ToDouble(price);
         }

         Cart.Rows.Add(dr);

         // Set the EditItemIndex property to -1 to exit editing mode. 
         // Be sure to rebind the DateGrid to the data source to refresh
         // the control.
         ItemsGrid.EditItemIndex = -1;
         BindGrid();

      }

      void BindGrid() 
      {

         // Set the data source and bind to the Data Grid control.
         ItemsGrid.DataSource = CartView;
         ItemsGrid.DataBind();

      }

      void GetSource()
      {

         // For this example, the data source is a DataTable that is stored
         // in session state. If the data source does not exist, create it;
         //  otherwise, load the data.
         if (Session["ShoppingCart"] == null) 
         {     

            // Create the sample data.
            DataRow dr;  

            // Define the columns of the table.
            Cart.Columns.Add(new DataColumn("Qty", typeof(Int32)));
            Cart.Columns.Add(new DataColumn("Item", typeof(String)));
            Cart.Columns.Add(new DataColumn("Price", typeof(Double)));

            // Store the table in session state to persist its values 
            // between posts to the server.
            Session["ShoppingCart"] = Cart;

            // Populate the DataTable with sample data.
            for (int i = 1; i <= 9; i++) 
            {
               dr = Cart.NewRow();
               if (i % 2 != 0)
               {
                  dr[0] = 2;
               }
               else
               {
                  dr[0] = 1;
               }
               dr[1] = "Item " + i.ToString();
               dr[2] = (1.23 * (i + 1));
               Cart.Rows.Add(dr);
            }

         } 

         else
         {

            // Retrieve the sample data from session state.
            Cart = (DataTable)Session["ShoppingCart"];

         }         

         // Create a DataView and specify the field to sort by.
         CartView = new DataView(Cart);
         CartView.Sort="Item";

         return;

      }

      void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
      {

         switch(((LinkButton)e.CommandSource).CommandName)
         {

            case "Delete":
               DeleteItem(e);
               break;

            // Add other cases here, if there are multiple ButtonColumns in 
            // the DataGrid control.

            default:
               // Do nothing.
               break;

         }

      }

      void DeleteItem(DataGridCommandEventArgs e)
      {

         // e.Item is the table row where the command is raised. For bound
         // columns, the value is stored in the Text property of a TableCell.
         TableCell itemCell = e.Item.Cells[2];
         string item = itemCell.Text;

         // Remove the selected item from the data source.         
         CartView.RowFilter = "Item='" + item + "'";
         if (CartView.Count > 0) 
         {     
            CartView.Delete(0);
         }
         CartView.RowFilter = "";

         // Rebind the data source to refresh the DataGrid control.
         BindGrid();

      }

   </script>

<head runat="server">
    <title>DataGrid Editing Example</title>
</head>
<body>

   <form id="form1" runat="server">

      <h3>DataGrid Editing Example</h3>

      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           OnEditCommand="ItemsGrid_Edit"
           OnCancelCommand="ItemsGrid_Cancel"
           OnUpdateCommand="ItemsGrid_Update"
           OnItemCommand="ItemsGrid_Command"
           AutoGenerateColumns="false"
           runat="server">

         <HeaderStyle BackColor="#aaaadd">
         </HeaderStyle>

         <Columns>

            <asp:EditCommandColumn
                 EditText="Edit"
                 CancelText="Cancel"
                 UpdateText="Update" 
                 HeaderText="Edit item">

               <ItemStyle Wrap="False">
               </ItemStyle>

               <HeaderStyle Wrap="False">
               </HeaderStyle>

            </asp:EditCommandColumn>

            <asp:ButtonColumn 
                 HeaderText="Delete item" 
                 ButtonType="LinkButton" 
                 Text="Delete" 
                 CommandName="Delete"/>  

            <asp:BoundColumn HeaderText="Item" 
                 ReadOnly="True" 
                 DataField="Item"/>

            <asp:BoundColumn HeaderText="Quantity" 
                 DataField="Qty"/>

            <asp:BoundColumn HeaderText="Price"
                 DataField="Price"
                 DataFormatString="{0:c}"/>

         </Columns>

      </asp:DataGrid>

   </form>

</body>
</html>



يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0, 1.1, 1.0
إظهار: