$(
function
() {
$(
'#tblAppendGrid'
).appendGrid({
caption:
'Drop Down List Test'
,
columns: [
{
name:
'String1'
, display:
'String 1'
, type:
'select'
,
ctrlOptions:
'1:Option 1;2:Option 2;3:Option 3;4:Option 4;5:Option 5'
,
onChange: handleChange
},
{
name:
'String2'
, display:
'String 2'
, type:
'select'
,
ctrlOptions:
'Option 1;Option 2;Option 3;Option 4;Option 5'
,
onChange: handleChange
},
{
name:
'Array1'
, display:
'String[]'
, type:
'select'
,
ctrlOptions: [
'Value 1'
,
'Value 2'
,
'Value 3'
,
'Value 4'
,
'Value 5'
],
onChange: handleChange
},
{
name:
'Array2'
, display:
'Object[]'
, type:
'select'
,
ctrlOptions: [
{ label:
'A-1'
, value: 1, group:
'Group 1'
, title:
'Prefix A'
},
{ label:
'B-1'
, value: 2, group:
'Group 1'
},
{ label:
'C-1'
, value: 3, group:
'Group 1'
},
{ label:
'A-2'
, value: 4, group:
'Group 2'
, title:
'Prefix A'
},
{ label:
'B-2'
, value: 5, group:
'Group 2'
},
{ label:
'C-2'
, value: 6, group:
'Group 2'
},
{ label:
'D-2'
, value: 7, group:
'Group 2'
},
{ label:
'Special'
, value: 8, title:
'No Option Group!'
},
{ label:
'A-3'
, value: 9, group:
'Group 3'
, title:
'Prefix A'
},
{ label:
'B-3'
, value: 10, group:
'Group 3'
}
],
onChange: handleChange
},
{ name:
'Function'
, display:
'Function'
, type:
'select'
, ctrlOptions: generateOptions },
{
name:
'Cascade1'
, display:
'Cascade 1'
, type:
'select'
,
ctrlOptions: { 0:
'{Choose}'
, 1:
'A'
, 2:
'B'
, 3:
'C'
, 4:
'D'
, 5:
'E'
},
onChange: handleCascadeChange1
},
{
name:
'Cascade2'
, display:
'Cascade 2'
, type:
'select'
,
ctrlOptions: { 0:
'{Choose}'
}, ctrlAttr: { disabled:
'disabled'
},
onChange: handleCascadeChange2
},
{
name:
'Cascade3'
, display:
'Cascade 3'
, type:
'select'
,
ctrlOptions: { 0:
'{Choose}'
}, ctrlAttr: { disabled:
'disabled'
}
},
{
name:
'UiSelectMenu'
, display:
'UI selectmenu'
, type:
'ui-selectmenu'
, uiOption: {
'width'
:
'100px'
},
ctrlOptions:
'0:Item 0;1:Item 1;2:Item 2;3:Item 3;4:Item 4'
}
],
initData: [
{ String1: 1, String2:
'Option 3'
, Array1:
'Value 2'
, Array2: 3, Function: 5, Cascade1: 0, Cascade2: 0, Cascade3: 0, UiSelectMenu: 4 },
{ String1: 2, String2:
'Option 4'
, Array1:
'Value 3'
, Array2: 5, Function: 3, Cascade1: 1, Cascade2: 2, Cascade3: 0, UiSelectMenu: 3 },
{ String1: 3, String2:
'Option 5'
, Array1:
'Value 4'
, Array2: 8, Function: 1, Cascade1: 2, Cascade2: 3, Cascade3: 5, UiSelectMenu: 2 }
],
rowDataLoaded:
function
(caller, record, rowIndex, uniqueIndex) {
if
(0 < record.Cascade1) {
var
cascade1 = $(
'#tblAppendGrid'
).appendGrid(
'getCellCtrl'
,
'Cascade1'
, rowIndex);
$(cascade1).trigger(
'change'
);
var
cascade2 = $(
'#tblAppendGrid'
).appendGrid(
'getCellCtrl'
,
'Cascade2'
, rowIndex);
if
(0 < record.Cascade2) {
$(cascade2).val(record.Cascade2).trigger(
'change'
);
var
cascade3 = $(
'#tblAppendGrid'
).appendGrid(
'getCellCtrl'
,
'Cascade3'
, rowIndex);
if
(0 < record.Cascade3) {
$(cascade3).val(record.Cascade3);
}
}
}
}
});
});
function
generateOptions(elem) {
for
(
var
z = 1; z <= 5; z++) {
elem.options[z - 1] =
new
Option(
'Option '
+ z, z);
}
}
function
handleChange(evt, rowIndex) {
alert(
'Selected Value = '
+ evt.target.value);
}
function
handleCascadeChange1(evt, rowIndex) {
var
elem1 = evt.target;
var
elem2 = $(
'#tblAppendGrid'
).appendGrid(
'getCellCtrl'
,
'Cascade2'
, rowIndex);
var
elem3 = $(
'#tblAppendGrid'
).appendGrid(
'getCellCtrl'
,
'Cascade3'
, rowIndex);
elem2.options.length = 1;
elem3.options.length = 1;
if
(0 < elem1.selectedIndex) {
var
selectedText = elem1.options[elem1.selectedIndex].innerHTML;
for
(
var
z = 1; z <= 5; z++) {
elem2.options[z] =
new
Option(selectedText +
'-'
+ z, z);
}
elem2.disabled =
false
;
}
else
{
elem2.disabled =
true
;
}
elem3.disabled =
true
;
}
function
handleCascadeChange2(evt, rowIndex) {
var
elem2 = evt.target;
var
elem3 = $(
'#tblAppendGrid'
).appendGrid(
'getCellCtrl'
,
'Cascade3'
, rowIndex);
elem3.options.length = 1;
if
(0 < elem2.selectedIndex) {
var
selectedText = elem2.options[elem2.selectedIndex].innerHTML;
for
(
var
z = 1; z <= 5; z++) {
elem3.options[z] =
new
Option(selectedText +
'-'
+ z, z);
}
elem3.disabled =
false
;
}
else
{
elem3.disabled =
true
;
}
}