none
Como ocultar un MenuItemId Ribbon via javascript RRS feed

  • Pregunta

  • Hola, Tengo un problema con Ribbons.  Lo que necesito hacer es ocultar ó mostrar un botón vía javascript. First.  Primero hice creé una solución sobre la entidad systemuser e hice un export y luego con el id button que encontré en el sdk samples agregué el código con el tag JavascriptFunction y puse la función que creé en javascript.  Sin embargo, luego de subir mi función en javascript e importarlo correctamente no se disparan los alerts de la función.  

    <RibbonDiffXml>
            <CustomActions />        
            <Templates>
              <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
            </Templates>
            <CommandDefinitions>
              <CommandDefinition Id="Mscrm.HomepageGrid.systemuser.ChangeBusinessUnit">
                <EnableRules>
                </EnableRules>
                  <DisplayRules>
                  </DisplayRules>
                  <Actions>
                      <JavaScriptFunction Library = "$webresource:bg_js/SystemUser_main" FunctionName = "bg_js.SystemUser_main.prueba">
                        <CrmParameter Value="CommandProperties" />
                      </JavaScriptFunction>
                  </Actions>
              </CommandDefinition>
            </CommandDefinitions>
            <RuleDefinitions>
              <TabDisplayRules />
              <DisplayRules />
              <EnableRules />
            </RuleDefinitions>
            <LocLabels />
          </RibbonDiffXml>
    
    

    Para deshabilitar el botón del menu Ribbon.  Es correcto esta forma?

    document.getElementById("Mscrm.HomepageGrid.systemuser.ChangeBusinessUnit").style.display = "none"; 
    if (typeof (bg_js) == "undefined") {
        bg_js = {};
    }
    bg_js.SystemUser_main = { 
    prueba: function (CommandProperties) {
            alert("entró al evento prueba()");
            if (CommandProperties != "") {
                alert("CommandProperties.SourceControlId->" + CommandProperties.SourceControlId + ".\nCommandProperties.CommandValueId->" +
                ".\nCommandProperties.MenuItemId->" + CommandProperties.MenuItemId);
            } else {
                alert("El parámetro viene vacío.");
            }
            var currentTime = new Date();
            var hora = currentTime.getHours();
            var min = currentTime.getMinutes();
    
            if (hora < 18 || (hora == 18 && min < 30)) {
                document.getElementById("Mscrm.HomepageGrid.systemuser.ChangeBusinessUnit").style.display = "none";
            }
        }
    };
    

    Cuando voy a la formulario systemuser para crear ó editar un registro, éste nunca ejecuta ningún alert.  La librería javascript está atachada con el javascript sin definir ningún evento.  Qué está mal en mi código? En qué momento el método bg_js.SystemUser_main.prueba se ejecutará? De antemano gracias por su ayuda.

    miércoles, 18 de enero de 2012 19:08