2015-02-12 5 views
0

Я пытаюсь обобщить .add_hiding для PopupControlExtender, передав некоторые аргументы, но по какой-то причине он не работает.ASP.NET 3.5 AJAX Control ToolKit PopupControlExtender

function onPageLoad() { 
      var modalPopup = $find('txbCliente_PopupControlExtender'); 
      modalPopup.add_hiding(onHidingPopUp('cblCliente','txbCliente')); 
     } 
     function onHidingPopUp(cblId, txbID) { 
      var cbl = document.getElementById(cblId); 
      var optionsIds = cbl.getElementsByTagName('input'); 
      var optionsLabels = cbl.getElementsByTagName('label'); 
      var varios = false; 
      var txb = document.getElementById(txbID); 
      var text = ""; 

      for (var i = 0; i < optionsIds.length; i++) { 
       if (optionsIds[i].checked && varios) { 
        text = "Mútiplos Valores."; 
        break; 
       } 
       else if (optionsIds[i].checked && !varios) { 
        varios = true; 
        text = optionsLabels[i].textContent; 
       } 
      } 

      txb.value = text; 
     } 

ответ

1

Вы передаете результат вызова onHidingPopUp('cblCliente','txbCliente'), а не саму функцию методу add_hiding. Если вы хотите передать предопределенные аргументы функции, завернуть его в другой функции:

modalPopup.add_hiding(function() { 
    onHidingPopUp('cblCliente','txbCliente') 
}); 

Если у вас только один параметр, вы можете также использовать MS Ajax Function.createCallback расширение:

modalPopup.add_hiding(Function.createCallback(onHidingPopUp, 'cblCliente')); 
+0

Hi @Artem Амирбеков. Thx для ответа, это имеет смысл, я думаю, я не привык видеть функции/методы в качестве аргументов. Протестировано и работает;) – FEST

Смежные вопросы