Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
100
Setting defaultValue not working
posted

Ignite UI version: 2018.2

When I set defaultValue in the iggrid initialization (columnSettings): works!
When I change defaultValue in the rendered event: works!
When I change defaultValue in the saveChanges event after committing the dataSource: doesn't work
Changing another another parameter, f.e. "required" in the saveChanges event after committing the dataSource works too, so I suppose there's a problem changing defaultValue programmatically after initialization.

Is there a work around?

My code:

var grid = $("#CustomerStartupNormenGrid");
$.ajax({
	type: "GET",
	cache: false,
	url: urlCustomerStartup_GetNormen,
	data: { klantNr: webCustomer.Klantnr, login: webUser.Gebruikersnaam, languageCode: languageCode },
	dataType: "json",
	async: false,
	success(response, status, xhr) {
		if (response) {
			var ct = xhr.getResponseHeader("content-type") || "";
			if (ct.indexOf("ERROR") === -1) {

				//Grid Initialization
				grid.igGrid({
					language: languageCode.toLowerCase(),
					dataSource: response,
					responseDataKey: "OpstartNorm",
					updateUrl: urlCustomerStartup_SetNormen,
					autoGenerateColumns: false,
					primaryKey: "Volgnummer",
					autoCommit: true,
					width: "100%",
					height: "800px",
					columns: [
						{ headerText: "", key: "Volgnummer", dataType: "number", hidden: true },
						{ headerText: "", key: "Klantnr", dataType: "string", hidden: true },
						{ headerText: "", key: "Login", dataType: "object", hidden: true },
						{
							headerText: "Afdelingscode",
							key: "Afdelingscode",
							dataType: "string"
						},
						{
							headerText: "Artikelnr",
							key: "Artikelnr",
							dataType: "string"
						},
						{
							headerText: "Telvolgorde",
							key: "Telvolgorde",
							dataType: "number"
						}
					],
					features: [
						{
							name: 'Updating',
							editMode: "dialog",
							rowEditDialogOptions: {
								width: "500px",
								height: "700px",
							},
							columnSettings: [{
								columnKey: "Klantnr",
								defaultValue: webCustomer.Klantnr
							},
							{
								columnKey: "Login",
								defaultValue: [webUser.Gebruikersnaam]
							}, {
								columnKey: "Afdelingscode",
								required: true,
								editorType: 'combo',
								editorOptions: {
									mode: "dropdown",
									dataSource: response.Afdelingen,
									textKey: "Naam",
									valueKey: "Code"
								}
							}, {
								columnKey: "Artikelnr",
								required: true,
								editorType: 'combo',
								editorOptions: {
									mode: "dropdown",
									dataSource: response.Artikels,
									textKey: "Omschrijving",
									valueKey: "Artikelnr",
									validatorOptions: { language: languageCode.toLowerCase() }
								}
							}, {
								columnKey: "Telvolgorde",
								editorType: 'numeric',
								defaultValue: 0,
								required: true,
								allowSorting: true,
								currentSortDirection: 'ascending',
								editorOptions: {
									validatorOptions: { language: languageCode.toLowerCase() }
								}
							}],
							editRowEnded: function (evt, ui) {
								if (ui.update) { //ui.rowUpdate
									$("#CustomerStartupNormenGrid").igGrid("saveChanges",
										function (data) {
											if (data.ids.NewId > 0) {
												setTimeout(function () {
													grid.igGridUpdating("setCellValue",
														data.ids.OldId,
														"Volgnummer",
														data.ids.NewId); // Line 5

													$(
														"#CustomerStartupNormenGrid > tbody > tr[data-id='" +
														data.ids.OldId +
														"']").attr("data-id", data.ids.NewId); // Line 6
												},
													100);
											}

											grid.data("igGrid").dataSource.commit(); // Line 8
											grid.data("igGrid").dataSource.allTransactions().length = 0; // Line 9

											//Show feedback
											var message = TranslationDAL.localizedStrings["GridUpdated"][languageCode];
											showFeedback("CustomerStartupNormenUpdatedMessage", message);

											CalcDefaultTelvolgorde();
										},
										function (jqXHR, textStatus, errorThrown) {
											alert(jqXHR.responseJSON.ErrorMessage);
										});
								}
							},
							rowDeleted: function (evt, ui) {
								var message = TranslationDAL.localizedStrings["GridUpdated"][languageCode];
								showFeedback("CustomerStartupNormenUpdatedMessage", message);

								grid.igGrid("saveChanges");

								CalcDefaultTelvolgorde();
							},
							generatePrimaryKeyValue: function (evt, ui) { ui.value = 0; }
						}
					],
					rendered: function (evt, ui) {
						CalcDefaultTelvolgorde();
					}
				});
			} else {
				alert("ERROR:" + response);
			}
		}
	},
	error(xhr, textStatus, errorThrown) {
		SharedFunctionsDAL.ShowUnexpectedError(xhr, errorThrown);
	}
});

function CalcDefaultTelvolgorde() {
	var rowCount = grid.igGrid("rows").length;
	var columnSettings = grid.igGridUpdating("option", "columnSettings");
	if (rowCount === 0)
		columnSettings[5].defaultValue = 0;
	else {
		var dataSource = grid.data("igGrid").dataSource;
		var lastCounter = dataSource._data[dataSource._data.length - 1].Telvolgorde;
		columnSettings[4].defaultValue = lastCounter + 10;
	}
	grid.igGridUpdating("option", "columnSettings", columnSettings);
}

Thanks!