CRUD Create

ZingGrid has default behavior for CREATE actions. There are expected inputs and outputs for a CREATE action. You can of course extend and override this default behavior.

CRUD Defaults

The default send and return values for CRUD actions.

CRUD Defaults
ActionTypeResponse CodesReturns
SuccessError
Create rowPOST200 - 299>= 400

Expected Return Contents

  1. Entire dataset
  2. Single record
  3. ID of record
Read dataGET200 - 299>= 400

Expects a JSON or dataset response.

Update rowPUT200 - 299>= 400

Response is not read.

Update cellPATCH200 - 299>= 400

Response is not read.

Delete rowDELETE200 - 299>= 400

Response is not read.

Override Defaults

If you need to override any default create actions you can use createOptions to adjust all actions against the initial, and subsequent fetches from the grid. You can read more about available createOptions values here.

Remember, since value is an HTML attribute it must be a valid JSON format and stringified.

Here is a list of available createOptions:

CloseCopy Copied
{
  // to change the read method of the action to POST
  "method": "POST",
  // takes a JSON packet to be sent to the server in place of the action
  // in this case user_id is always one.
  "body": {user_id:1},
  "requestType": "application/json",
  "exclude": "",
  "headers": {"Authorization": "Basic super-secrete-key"},
  "mode": "no-cors",
  "responseType": "",
  "src": "",
  "queryString": ""
}

The body value can be a static JSON:

CloseCopy Copied
<!-- basic create option with static body -->
<zg-param name="createOptions" value='{"body": {"user_id":1}}'></zg-param>

The body value can also be a function:

CloseCopy Copied
<!-- basic create option with function reference for body -->
<zg-param name="createOptions" value='{"body": "_fncStringReference"}'></zg-param>

Where the function returns the following:

CloseCopy Copied
// function returns an object
function _fncStringReference(record) {
  return {
    // to change the read method of the action to POST
    method: 'POST',
    // takes a JSON packet to be sent to the server in place of the action
    // in this case user_id is always one.
    body: {user_id:1},
    requestType: 'application/json',
    exclude: '',
    headers: {"Authorization": "Basic super-secrete-key"},
    mode: 'no-cors',
    responseType: '',
    src: '',
    queryString: ''
  }
}
loadingloadBgloadBgloadBgloadBgloadBgloadBgloadBgloadBgloadBgloadBgloadBgloadBgloadBgloadBgloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloadingloading