28.06.2007, 11:32 | #1 |
Участник
|
Как использовать метод layout для Web контролов, и использование JavaScripta
Добрый день!
Была задача поставить checkBox на веб-страницу и чтобы по клику - другой контрол (comboBox) становился enabled/disabled. Я решил эту проблему добавив в класс WebFormHtml, в метод layotCheckBox следующий код (помечен TE-rko): X++: void layoutCheckBox(FormWebCheckBox fwcb) { boolean allowedit,mandatory,enabled; ..... #Output(' name="'+this.controlName(fwcb)+'"'); // [AGR6988]CUS-Modification on 28.03.2007 by TE-rko added - start if (this.controlName(fwcb) == 'AGR_EPFarmerRegisteredUsers_InvoicePaym') #Output(' onclick="InvoicePaym_OnClick()"'); // [AGR6988]CUS-Modification on 28.03.2007 by TE-rko added - end .......... #Output('></td>\n'); // [AGR6988]CUS-Modification on 28.03.2007 by TE-rko added - start if (this.controlName(fwcb) == 'AGR_EPFarmerRegisteredUsers_InvoicePaym') { #Output('<SCRIPT LANGUAGE=javascript>\n'); #Output('function InvoicePaym_OnClick()\n'); #Output('{\n'); #Output('if (document.'+_webrun.name()+'.AGR_EPFarmerRegisteredUsers_InvoicePaym.checked == false)\n'); #Output(' { document.'+_webrun.name()+'.AgrHomeShopId.value = 1;\n'); #Output(' document.'+_webrun.name()+'.AgrHomeShopId.disabled = true; }\n'); #Output('else\n'); #Output(' { document.'+_webrun.name()+'.AgrHomeShopId.disabled = false;}\n'); #Output('}\n'); #Output('window.onload = function()\n'); #Output('{\n'); #Output(' InvoicePaym_OnClick();\n'); #Output('}\n'); #Output('</SCRIPT>\n'); } // [AGR6988]CUS-Modification on 28.03.2007 by TE-rko added - end } Всё работает, но вопрос - нельзя ли было это обойти как нибудь через layout или какой другой метод у контрола или конкретной веб-формы,- чтобы не менять системный класс таким "хардкодингом"? Как вообще работает layout? Заранее спасибо! |
|
28.06.2007, 13:41 | #2 |
Member
|
Возможно, вам нужен контрол на форме с типом WebUserDefined. В методе layout() которого можно прописать вывод любого HTML (или JavaScript) кода.
__________________
С уважением, glibs® |
|