This topic is locked
[SOLVED]

 Show/Hide Fields based on Field values

3/25/2020 10:20:57 AM
ASPRunner.NET General questions
R
rlmartinez author

I have a table where I would like to show/hide fields based on values selected from a look up table. I have reviewed the US/States help section in the manual.
https://xlinesoft.com/asprunnernet/docs/show_dropdown_list_of_us_states.htm
My table requires multiple fields to be shown or hidden based on certain values selected from a look up table. The problem I am having is only the last value 'VP' seems to work. If other values are selected, the fields are not hidden or shown, as desired.
Here is my code that I have as an JavaScript OnLoad event on both my add and edit pages.
var ctrlPlatType = Runner.getControl(pageid, 'PlatType');
ctrlPlatType.on('change', function(e) {

if (this.getValue() == 'C1') {

pageObj.hideField("CPL");

} else {

pageObj.showField("CPL");

}

if (this.getValue() == 'C1') {

pageObj.hideField("Drawing");

} else {

pageObj.showField("Drawing");

}

if (this.getValue() == 'C1') {

pageObj.hideField("Registry_Drawing");

} else {

pageObj.showField("Registry_Drawing");

}

if (this.getValue() == 'C1') {

pageObj.hideField("PDF");

} else {

pageObj.showField("PDF");

}

if (this.getValue() == 'C3P') {

pageObj.hideField("CPL");

} else {

pageObj.showField("CPL");

}

if (this.getValue() == 'C3N') {

pageObj.hideField("PublicHearingRequirement");

} else {

pageObj.showField("PublicHearingRequirement");

}

if (this.getValue() == 'GP') {

pageObj.hideField("CPL");

} else {

pageObj.showField("CPL");

}

if (this.getValue() == 'VF') {

pageObj.hideField("CPL");

} else {

pageObj.showField("CPL");

}

if (this.getValue() == 'VF') {

pageObj.hideField("CAD_Drawing");

} else {

pageObj.showField("CAD_Drawing");

}

if (this.getValue() == 'VF') {

pageObj.hideField("Registry_Drawing");

} else {

pageObj.showField("Registry_Drawing");

}

if (this.getValue() == 'VF') {

pageObj.hideField("PDF");

} else {

pageObj.showField("PDF");

}

if (this.getValue() == 'VP') {

pageObj.hideField("CPL");

} else {

pageObj.showField("CPL");

}

if (this.getValue() == 'VP') {

pageObj.hideField("CAD_Drawing");

} else {

pageObj.showField("CAD_Drawing");

}

if (this.getValue() == 'VP') {

pageObj.hideField("Registry_Drawing");

} else {

pageObj.showField("Registry_Drawing");

}

if (this.getValue() == 'VP') {

pageObj.hideField("PDF");

} else {

pageObj.showField("PDF");

}

});
Please let me know if you seen anything wrong with my code. Thank you.

T
Tim 3/25/2020

How about showing/hiding each field based on selection. Something like this:



var ctrlPlatType = Runner.getControl(pageid, 'PlatType');
// First hide all fields when the page loads

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");



// Now show or hide fields based on selection

if (this.getValue() == 'C1') {

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.showField("PublicHearingRequirement");

}

if (this.getValue() == 'C3P') {

pageObj.showField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");

}

...


I'm not sure what field should be shown/hidden, but hopefully you get this idea. And hopefully this works... I didn't test.
Good luck,

Tim

R
rlmartinez author 3/25/2020



How about showing/hiding each field based on selection. Something like this:



var ctrlPlatType = Runner.getControl(pageid, 'PlatType');
// First hide all fields when the page loads

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");
// Now show or hide fields based on selection

if (this.getValue() == 'C1') {

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.showField("PublicHearingRequirement");

}

if (this.getValue() == 'C3P') {

pageObj.showField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");

}

...


I'm not sure what field should be shown/hidden, but hopefully you get this idea. And hopefully this works... I didn't test.
Good luck,

Tim


Hi Tim,
I tried your idea but it only executes the first part of the code where the fields are hidden. Here is what I did as a test. The part of the code where fields are shown doesn't work. Maybe I am missing something.
Thank you,
Robert
var ctrlPlatType = Runner.getControl(pageid, 'PlatType');
// First hide all fields when the page loads

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");
// Now show or hide fields based on selection

if (this.getValue() == 'C1') {

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.showField("PublicHearingRequirement");

}

if (this.getValue() == 'C3P') {

pageObj.showField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");

}

if (this.getValue() == 'C2') {

pageObj.showField("CPL");

pageObj.showField("CAD_Drawing");

pageObj.showField("Registry_Drawing");

pageObj.showField("PDF");

pageObj.showField("PublicHearingRequirement");

}

T
Tim 3/25/2020

Sorry, you need the bit that says to fire it on change of your main field, like you had in your first post.


var ctrlPlatType = Runner.getControl(pageid, 'PlatType');
// First hide all fields when the page loads

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");
// Now show or hide fields based on selection
ctrlPlatType.on('change',functin(e){

if (this.getValue() == 'C1') {

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.showField("PublicHearingRequirement");

}

if (this.getValue() == 'C3P') {

pageObj.showField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");

}

if (this.getValue() == 'C2') {

pageObj.showField("CPL");

pageObj.showField("CAD_Drawing");

pageObj.showField("Registry_Drawing");

pageObj.showField("PDF");

pageObj.showField("PublicHearingRequirement");

}

}
R
rlmartinez author 4/9/2020



Sorry, you need the bit that says to fire it on change of your main field, like you had in your first post.


var ctrlPlatType = Runner.getControl(pageid, 'PlatType');
// First hide all fields when the page loads

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");
// Now show or hide fields based on selection
ctrlPlatType.on('change',functin(e){

if (this.getValue() == 'C1') {

pageObj.hideField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.showField("PublicHearingRequirement");

}

if (this.getValue() == 'C3P') {

pageObj.showField("CPL");

pageObj.hideField("CAD_Drawing");

pageObj.hideField("Registry_Drawing");

pageObj.hideField("PDF");

pageObj.hideField("PublicHearingRequirement");

}

if (this.getValue() == 'C2') {

pageObj.showField("CPL");

pageObj.showField("CAD_Drawing");

pageObj.showField("Registry_Drawing");

pageObj.showField("PDF");

pageObj.showField("PublicHearingRequirement");

}

}



Thanks Tim. That worked like a charm!