Show / Hide Table of Contents

Class Editor

DataTables Editor base class for creating editable tables.

Editor class instances are capable of servicing all of the requests that DataTables and Editor will make from the client-side - specifically:

  • Get data
  • Create new record
  • Edit existing record
  • Delete existing records

The Editor instance is configured with information regarding the database table fields that you which to make editable, and other information needed to read and write to the database (table name for example!).

This documentation is very much focused on describing the API presented by these DataTables Editor classes. For a more general overview of how the Editor class is used, and how to install Editor on your server, please refer to the Editor manual ( https://editor.datatables.net/manual ).

Inheritance
System.Object
Editor
Namespace: DataTables
Assembly: DataTables-Editor-Server.dll
Syntax
public class Editor : object

Constructors

| Improve this Doc View Source

Editor(Database, String, String)

Create a new Editor instance

Declaration
public Editor(Database db = null, string table = null, string pkey = null)
Parameters
Type Name Description
Database db

An instance of the DataTables Database class that we can use for the DB connection. Can also be set with the

Db()
method.

System.String table

The table name in the database to read and write information from and to. Can also be set with the

Table()
method.

System.String pkey

Primary key column name in the table given. Can also be set with the

PKey()
method.

| Improve this Doc View Source

Editor(Database, String, String[])

Create a new Editor instance

Declaration
public Editor(Database db, string table, string[] pkey)
Parameters
Type Name Description
Database db

An instance of the DataTables Database class that we can use for the DB connection. Can also be set with the

Db()
method.

System.String table

The table name in the database to read and write information from and to. Can also be set with the

Table()
method.

System.String[] pkey

Primary key column names in the table given. Can also be set with the

PKey()
method.

Fields

| Improve this Doc View Source

Version

Version string

Declaration
public const string Version = null
Field Value
Type Description
System.String

Methods

| Improve this Doc View Source

Action(DtRequest)

Get the form action.

Declaration
public static DtRequest.RequestTypes Action(DtRequest request)
Parameters
Type Name Description
DtRequest request

Data sent from the client-side

Returns
Type Description
DtRequest.RequestTypes

Request type

| Improve this Doc View Source

Action(HttpRequest)

Get the form action. For use with an HttpRequest object

Declaration
public static DtRequest.RequestTypes Action(HttpRequest http)
Parameters
Type Name Description
HttpRequest http

Data sent from the client-side

Returns
Type Description
DtRequest.RequestTypes

Request type

| Improve this Doc View Source

Action(IEnumerable<KeyValuePair<String, StringValues>>)

Get the form action. For use with WebAPI's 'FormDataCollection' collection

Declaration
public static DtRequest.RequestTypes Action(IEnumerable<KeyValuePair<String, StringValues>> data = null)
Parameters
Type Name Description
IEnumerable<KeyValuePair<String, StringValues>> data

Data sent from the client-side

Returns
Type Description
DtRequest.RequestTypes

Request type

| Improve this Doc View Source

Action(IEnumerable<KeyValuePair<String, String>>)

Get the form action. For use with WebAPI's 'FormDataCollection' collection

Declaration
public static DtRequest.RequestTypes Action(IEnumerable<KeyValuePair<string, string>> data = null)
Parameters
Type Name Description
IEnumerable<KeyValuePair<System.String, System.String>> data

Data sent from the client-side

Returns
Type Description
DtRequest.RequestTypes

Request type

| Improve this Doc View Source

Action(NameValueCollection)

Get the form action. For use with MVC's 'Request.Form' collection

Declaration
public static DtRequest.RequestTypes Action(NameValueCollection data = null)
Parameters
Type Name Description
NameValueCollection data

Data sent from the client-side

Returns
Type Description
DtRequest.RequestTypes

Request type

| Improve this Doc View Source

Data()

Get the response object that has been created by this instance. This is only useful after

process()
has been called.

Declaration
public DtResponse Data()
Returns
Type Description
DtResponse

The response object as populated by this instance

| Improve this Doc View Source

Db()

Get the database instance used by this instance

Declaration
public Database Db()
Returns
Type Description
Database

Database connection instance

| Improve this Doc View Source

Db(Database)

Set the database connection instance

Declaration
public Editor Db(Database db)
Parameters
Type Name Description
Database db

Connection instance to set

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

DbTransaction()

Get the current database transaction

Declaration
public DbTransaction DbTransaction()
Returns
Type Description
DbTransaction

Database transaction, or null if not in a transaction

| Improve this Doc View Source

Debug()

Get the debug state

Declaration
public bool Debug()
Returns
Type Description
System.Boolean

true if debugging is enabled

| Improve this Doc View Source

Debug(Boolean)

Set the debug state. If enabled (true) Editor will record information about the SQL queries it makes and return that information in the JSON sent to the client-side query once the request has been processed.

Declaration
public Editor Debug(bool debug)
Parameters
Type Name Description
System.Boolean debug

Flag to for how to set the debug state

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Debug(Object)

Add debug information to the data sent to the client-side.

Declaration
public Editor Debug(object debug)
Parameters
Type Name Description
System.Object debug

Debug information to send

Returns
Type Description
Editor
| Improve this Doc View Source

Debug(String)

Add debug information to the data sent to the client-side.

Declaration
public Editor Debug(string debug)
Parameters
Type Name Description
System.String debug

Debug information to send

Returns
Type Description
Editor
| Improve this Doc View Source

Field()

Get the fields that have been configured for this instance

Declaration
public List<Field> Field()
Returns
Type Description
List<Field>

List of fields

| Improve this Doc View Source

Field(Field)

Add a new field to this instance

Declaration
public Editor Field(Field f)
Parameters
Type Name Description
Field f

New field to add

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Field(IEnumerable<Field>)

Add multiple fields too this instance

Declaration
public Editor Field(IEnumerable<Field> fields)
Parameters
Type Name Description
IEnumerable<Field> fields

Collection of fields to add

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Field(String)

Get a field instance that has already been added

Declaration
public Field Field(string f)
Parameters
Type Name Description
System.String f

Field name to select

Returns
Type Description
Field

Field instance

| Improve this Doc View Source

IdPrefix()

Get the DOM prefix.

Typically primary keys are numeric and this is not a valid ID value in an HTML document - is also increases the likelihood of an ID clash if multiple tables are used on a single page. As such, a prefix is assigned to the primary key value for each row, and this is used as the DOM ID, so Editor can track individual rows.

Declaration
public string IdPrefix()
Returns
Type Description
System.String

DOM prefix

| Improve this Doc View Source

IdPrefix(String)

Set the DOM prefix.

Typically primary keys are numeric and this is not a valid ID value in an HTML document - is also increases the likelihood of an ID clash if multiple tables are used on a single page. As such, a prefix is assigned to the primary key value for each row, and this is used as the DOM ID, so Editor can track individual rows.

Declaration
public Editor IdPrefix(string prefix)
Parameters
Type Name Description
System.String prefix

Prefix to set

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

InData()

Get the data that is being processed by the Editor instance. This is only useful once the

Process()
method has been called, and is available for use in validation and formatter methods.

Declaration
public DtRequest InData()
Returns
Type Description
DtRequest

Data given to

Process()

| Improve this Doc View Source

LeftJoin(String, String, String, String)

Add a left join condition to the Editor instance, allowing it to operate over multiple tables. Multiple

leftJoin()
calls can be made for a single Editor instance to join multiple tables.

A left join is the most common type of join that is used with Editor so this method is provided to make its use very easy to configure. Its parameters are basically the same as writing an SQL left join statement, but in this case Editor will handle the create, update and remove requirements of the join for you:

  • Create - On create Editor will insert the data into the primary table and then into the joined tables - selecting the required data for each table.
  • Edit - On edit Editor will update the main table, and then either update the existing rows in the joined table that match the join and edit conditions, or insert a new row into the joined table if required.
  • Remove - On delete Editor will remove the main row and then loop over each of the joined tables and remove the joined data matching the join link from the main table.

Please note that when using join tables, Editor requires that you fully qualify each field with the field's table name. SQL can result table names for ambiguous field names, but for Editor to provide its full CRUD options, the table name must also be given. For example the field

first_name
in the table
users
would be given

as

users.first_name
.

Declaration
public Editor LeftJoin(string table, string field1, string op = null, string field2 = null)
Parameters
Type Name Description
System.String table

Table name to do a join onto

System.String field1

Field from the parent table to use as the join link

System.String op

Join condition (=, '<`, etc)

System.String field2

Field from the child table to use as the join link

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

LeftJoinRemove()

Get the left join remove value.

Declaration
public bool LeftJoinRemove()
Returns
Type Description
System.Boolean

left join remove value

| Improve this Doc View Source

LeftJoinRemove(Boolean)

Indicate if a remove should be performed on left joined tables when deleting from the parent row. Note that this is disabled by default and will be removed completely in v2. Use ON DELETE CASCADE in your database instead.

Declaration
public Editor LeftJoinRemove(bool remove)
Parameters
Type Name Description
System.Boolean remove

Value to set

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

MJoin(MJoin)

Add a 1-to-many ("mjoin") join to the Editor instance. The way the join operates is defined by the MJoin class

Declaration
public Editor MJoin(MJoin join)
Parameters
Type Name Description
MJoin join

MJoin link to use

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Model<T>()

Set a model to use.

In keeping with the MVC style of coding, you can define the fields and their types that you wish to get from the database in a simple class. Editor will automatically add fields from the model.

Note that fields that are defined in the model can also be defined as

Field
instances should you wish to add additional options to a specific field such as formatters or validation.

Declaration
public Editor Model<T>()
Returns
Type Description
Editor

Self for chaining

Type Parameters
Name Description
T

Model to use

| Improve this Doc View Source

Model<T>(String)

Set a model to use.

Declaration
public Editor Model<T>(string tableName)
Parameters
Type Name Description
System.String tableName
Returns
Type Description
Editor

Self for chaining

Type Parameters
Name Description
T

Model to use

| Improve this Doc View Source

On(String, Delegate)

Add an event listener. The Editor class will trigger an number of events that some action can be taken on.

Declaration
public Editor On(string name, Delegate callback)
Parameters
Type Name Description
System.String name

Event name

Delegate callback

Callback function to execute when the event occurs

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Pkey()

Get the primary key field that has been configured.

The primary key must be known to Editor so it will know which rows are being edited / deleted upon those actions. The default value is 'id'.

Declaration
public string[] Pkey()
Returns
Type Description
System.String[]

Primary key

| Improve this Doc View Source

Pkey(String)

Set the primary key field to use. Please note that at this time Editor does not support composite primary keys in a table, only a single field primary key is supported.

The primary key must be known to Editor so it will know which rows are being edited / deleted upon those actions. The default value is 'id'.

Declaration
public Editor Pkey(string id)
Parameters
Type Name Description
System.String id

Primary key column name

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Pkey(String[])

Set the column names for a compound primary key.

Declaration
public Editor Pkey(string[] id)
Parameters
Type Name Description
System.String[] id

Primary key column names

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

PkeyToArray(String, Boolean, String[])

Convert a primary key combined value to an array of field values.

Declaration
public Dictionary<string, object> PkeyToArray(string value, bool flat = false, string[] pkey = null)
Parameters
Type Name Description
System.String value

The id that should be split apart

System.Boolean flat

Flag to indicate if the returned array should be flat(useful for where conditions) or nested for join tables.

System.String[] pkey

Primary key to use. Instance default will be used if not given

Returns
Type Description
Dictionary<System.String, System.Object>

Field values that the id was made up of.

| Improve this Doc View Source

PkeyToValue(Dictionary<String, Object>, Boolean)

Convert a primary key array of field values to a combined value.

Declaration
public string PkeyToValue(Dictionary<string, object> row, bool flat = false)
Parameters
Type Name Description
Dictionary<System.String, System.Object> row

The row of data that the primary key value should be extracted from

System.Boolean flat

Flag to indicate if the given array is flat (useful for where conditions) or nested for join tables.

Returns
Type Description
System.String

The created primary key value

| Improve this Doc View Source

Process(DtRequest)

Process a request from the Editor client-side to get / set data.

Declaration
public Editor Process(DtRequest data)
Parameters
Type Name Description
DtRequest data

Data sent from the client-side

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Process(HttpRequest, String)

Process a request from the Editor client-side to get / set data. For use with an HttpRequest object

Declaration
public Editor Process(HttpRequest request, string culture = null)
Parameters
Type Name Description
HttpRequest request

Data sent from the client-side

System.String culture

Culture string to use for number formatting - https://docs.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Process(IEnumerable<KeyValuePair<String, StringValues>>, String)

Get the form action. For use with WebAPI's 'FormDataCollection' collection

Declaration
public Editor Process(IEnumerable<KeyValuePair<String, StringValues>> data = null, string culture = null)
Parameters
Type Name Description
IEnumerable<KeyValuePair<String, StringValues>> data

Data sent from the client-side

System.String culture

Culture string to use for number formatting - https://docs.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo

Returns
Type Description
Editor

Request type

| Improve this Doc View Source

Process(IEnumerable<KeyValuePair<String, String>>, String)

Process a request from the Editor client-side to get / set data. For use with WebAPI's 'FormDataCollection' collection

Declaration
public Editor Process(IEnumerable<KeyValuePair<string, string>> data = null, string culture = null)
Parameters
Type Name Description
IEnumerable<KeyValuePair<System.String, System.String>> data

Data sent from the client-side

System.String culture

Culture string to use for number formatting - https://docs.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Process(NameValueCollection, String)

Process a request from the Editor client-side to get / set data. For use with MVC's 'Request.Form' collection

Declaration
public Editor Process(NameValueCollection data = null, string culture = null)
Parameters
Type Name Description
NameValueCollection data

Data sent from the client-side

System.String culture

Culture string to use for number formatting - https://docs.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

ReadTable()

Get the read database table name this Editor instance will use

Declaration
public List<string> ReadTable()
Returns
Type Description
List<System.String>

Table name

| Improve this Doc View Source

ReadTable(IEnumerable<String>)

Add multiple tables to the Editor instance

Declaration
public Editor ReadTable(IEnumerable<string> tables)
Parameters
Type Name Description
IEnumerable<System.String> tables

Collection of tables to add

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

ReadTable(String)

Set the read database table name this Editor instance will use. If not set, the table from Editor.Table() will be used.

Declaration
public Editor ReadTable(string t)
Parameters
Type Name Description
System.String t

Table name

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Table()

Get the database table name this Editor instance will use

Declaration
public List<string> Table()
Returns
Type Description
List<System.String>

Table name

| Improve this Doc View Source

Table(IEnumerable<String>)

Add multiple tables to the Editor instance

Declaration
public Editor Table(IEnumerable<string> tables)
Parameters
Type Name Description
IEnumerable<System.String> tables

Collection of tables to add

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Table(String)

Set the database table name this Editor instance will use

Declaration
public Editor Table(string t)
Parameters
Type Name Description
System.String t

Table name

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Transaction()

Get the transaction state for this instance.

When enabled (which it is by default) Editor will use an SQL transaction to ensure data integrity while it is performing operations on the table. This can be optionally disabled using this method, if required by your database configuration.

Declaration
public bool Transaction()
Returns
Type Description
System.Boolean

The current transaction value/state

| Improve this Doc View Source

Transaction(Boolean)

Set the transaction state for this instance.

Declaration
public Editor Transaction(bool set)
Parameters
Type Name Description
System.Boolean set

Value to set - true to enable transactions, false to disabled.

Returns
Type Description
Editor

Editor instance for chaining

| Improve this Doc View Source

TryCatch(Boolean)

Enable (default) / disable the error catching that Editor performs when processing the data from the client. When enabled any errors will be presented in a format that can be presented to the end user, but it makes debugging much more difficult if an error should occur inside the DataTables dll. Disabling the try / catch makes it much easier to see exactly where the error is occuring.

Declaration
public Editor TryCatch(bool set)
Parameters
Type Name Description
System.Boolean set

Enable - true, or disable - false

Returns
Type Description
Editor

Editor instance for chaining

| Improve this Doc View Source

Validate(DtResponse, DtRequest)

Perform validation on a data set.

Note that validation is performed on data only when the action is 'create' or 'edit'. Additionally, validation is performed on the wire data - i.e. that which is submitted from the client, without formatting. Any formatting required by

setFormatter
is performed after the data from the client has been validated.

Declaration
public bool Validate(DtResponse response, DtRequest request)
Parameters
Type Name Description
DtResponse response

DataTables response object

DtRequest request

DataTables request object

Returns
Type Description
System.Boolean

true if the data is valid, false if not.

| Improve this Doc View Source

Validator()

Get the global validator

Declaration
public List<Func<Editor, DtRequest.RequestTypes, DtRequest, string>> Validator()
Returns
Type Description
List<Func<Editor, DtRequest.RequestTypes, DtRequest, System.String>>

Validation functions set

| Improve this Doc View Source

Validator(Func<Editor, DtRequest.RequestTypes, DtRequest, String>)

Set a global validator

Declaration
public Editor Validator(Func<Editor, DtRequest.RequestTypes, DtRequest, string> validator)
Parameters
Type Name Description
Func<Editor, DtRequest.RequestTypes, DtRequest, System.String> validator

Validation function to set

Returns
Type Description
Editor
| Improve this Doc View Source

Where(Action<Query>)

Where condition to add to the query used to get data from the database. Multiple conditions can be added if required.

Can be used in two different ways:

  • Simple case: where( field, value, operator )
  • Complex: where( fn )

The simple case is fairly self explanatory, a condition is applied to the data that looks like field operator value (e.g. name = &apos;Allan&apos;). The complex case allows full control over the query conditions by providing a closure function that has access to the database Query that Editor is using, so you can use the where(), or_where(), and_where() and where_group() methods as you require.

Please be very careful when using this method! If an edit made by a user using Editor removes the row from the where condition, the result is undefined (since Editor expects the row to still be available, but the condition removes it from the result set).

Declaration
public Editor Where(Action<Query> fn)
Parameters
Type Name Description
Action<Query> fn

Delegate to execute adding where conditions to the table

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Where(String, Object, String)

Where condition to add to the query used to get data from the database. Multiple conditions can be added if required.

Can be used in two different ways:

  • Simple case: where( field, value, operator )
  • Complex: where( fn )

The simple case is fairly self explanatory, a condition is applied to the data that looks like field operator value (e.g. name = &apos;Allan&apos;). The complex case allows full control over the query conditions by providing a closure function that has access to the database Query that Editor is using, so you can use the where(), or_where(), and_where() and where_group() methods as you require.

Please be very careful when using this method! If an edit made by a user using Editor removes the row from the where condition, the result is undefined (since Editor expects the row to still be available, but the condition removes it from the result set).

Declaration
public Editor Where(string key, object value, string op = "=")
Parameters
Type Name Description
System.String key

Database column name to perform the condition on

System.Object value

Value to use for the condition

System.String op

Conditional operator

Returns
Type Description
Editor

Self for chaining

| Improve this Doc View Source

Write()

Get the value of this._write

Declaration
public bool Write()
Returns
Type Description
System.Boolean

bool the value of this._write

| Improve this Doc View Source

Write(Boolean)

Set the value of write

Declaration
public Editor Write(bool writeVal)
Parameters
Type Name Description
System.Boolean writeVal

The value that this._write is to be set to

Returns
Type Description
Editor

Self for chaining

Events

| Improve this Doc View Source

PostCreate

Event which is triggered immediately after a row has been created. Note that for multi-row creation it is triggered for each row indivudally.

Declaration
public event EventHandler<PostCreateEventArgs> PostCreate
Event Type
Type Description
EventHandler<PostCreateEventArgs>
| Improve this Doc View Source

PostEdit

Event which is triggered immediately after a row being edited. Note that for multi-row editing, it is triggered for each row individually.

Declaration
public event EventHandler<PostEditEventArgs> PostEdit
Event Type
Type Description
EventHandler<PostEditEventArgs>
| Improve this Doc View Source

PostGet

Event which is triggered immediately after a row has been created. Note that for multi-row creation it is triggered for each row indivudally.

Declaration
public event EventHandler<PostGetEventArgs> PostGet
Event Type
Type Description
EventHandler<PostGetEventArgs>
| Improve this Doc View Source

PostRemove

Event which is triggered immediately after a row being deleted. Note that for multi-row deletion, it is triggered for each row individually.

Declaration
public event EventHandler<PostRemoveEventArgs> PostRemove
Event Type
Type Description
EventHandler<PostRemoveEventArgs>
| Improve this Doc View Source

PostUpload

Event which is triggered immediately after an uploaded file has been processed.

Declaration
public event EventHandler<PostUploadEventArgs> PostUpload
Event Type
Type Description
EventHandler<PostUploadEventArgs>
| Improve this Doc View Source

PreCreate

Event which is triggered prior to a row being created and before validation. Note that for multi-row creation it is triggered for each row indivudally.

Declaration
public event EventHandler<PreCreateEventArgs> PreCreate
Event Type
Type Description
EventHandler<PreCreateEventArgs>
| Improve this Doc View Source

PreEdit

Event which is triggered prior to a row being edited and before validation. Note that for multi-row editing, it is triggered for each row individually.

Declaration
public event EventHandler<PreEditEventArgs> PreEdit
Event Type
Type Description
EventHandler<PreEditEventArgs>
| Improve this Doc View Source

PreGet

Event which is triggered immediately prior to a row being created. Note that for multi-row creation it is triggered for each row indivudally.

Declaration
public event EventHandler<PreGetEventArgs> PreGet
Event Type
Type Description
EventHandler<PreGetEventArgs>
| Improve this Doc View Source

PreRemove

Event which is triggered immediately prior to a row being deleted. Note that for multi-row deletion, it is triggered for each row individually.

Declaration
public event EventHandler<PreRemoveEventArgs> PreRemove
Event Type
Type Description
EventHandler<PreRemoveEventArgs>
| Improve this Doc View Source

PreUpload

Event which is triggered immediately prior to an uploaded file being processed.

Declaration
public event EventHandler<PreUploadEventArgs> PreUpload
Event Type
Type Description
EventHandler<PreUploadEventArgs>
| Improve this Doc View Source

ValidatedCreate

Event which is triggered immediately prior to a row being created and after validation. Note that for multi-row creation it is triggered for each row indivudally.

Declaration
public event EventHandler<ValidatedCreateEventArgs> ValidatedCreate
Event Type
Type Description
EventHandler<ValidatedCreateEventArgs>
| Improve this Doc View Source

ValidatedEdit

Event which is triggered immediately prior to a row being edited and after validation. Note that for multi-row editing, it is triggered for each row individually.

Declaration
public event EventHandler<ValidatedEditEventArgs> ValidatedEdit
Event Type
Type Description
EventHandler<ValidatedEditEventArgs>
| Improve this Doc View Source

WriteCreate

Event which is triggered after the new row has been written to the database, but before it is then read back, allowing the row to be manipulated externally. Note that for multi-row creation it is triggered for each row indivudally.

Declaration
public event EventHandler<WriteCreateEventArgs> WriteCreate
Event Type
Type Description
EventHandler<WriteCreateEventArgs>
| Improve this Doc View Source

WriteEdit

Event which is triggered after the row has been updated on the database, but before it is then read back, allowing the row to be manipulated externally. Note that for multi-row creation it is triggered for each row indivudally. individually.

Declaration
public event EventHandler<WriteEditEventArgs> WriteEdit
Event Type
Type Description
EventHandler<WriteEditEventArgs>
  • Improve this Doc
  • View Source
In This Article
Back to top Generated by DocFX