none
Sharepoint 2010. Visualizzare una window stile 'Visualizza proprietà' RRS feed

  • Domanda

  • Ciao a tutti,

    sto facendo una web part e quello che vorrei fare è: quando si seleziona una voce da una dropdown in una gridview, si deve aprire una finestra stile 'Visualizza proprietà', 'Modifica proprietà' etc. con lo sfondo 'dimmed', dove sia possibile inserire dei valori recuperabili dalla pagina principale quando si chiude la window (nella fattispecie avrei intenzione di metterci una RadioButtonList e qualche TextBox)

    grazie

    stefano

     

    mercoledì 24 novembre 2010 07:56

Risposte

Tutte le risposte

  • mercoledì 24 novembre 2010 08:43
  • grazie vado a vedere e poi ti faccio sapere

    stefano

     

    mercoledì 24 novembre 2010 09:20
  • ciao Giuseppe, mi sono andato a vedere i links che mi hai indicato ed era proprio quello che volevo, grazie. Però vorrei chiederti un aiuto: ho seguito il link http://msdn.microsoft.com/en-us/library/ff798390.aspx e funziona tutto bene solo che io non ho capito una cosa come la richiamo la mia funzione javascript dal code behind della web part. Nell'esempio di microsoft viene usata la proprietà 'NavigateUrl' di un controllo HyperLink, io nel mio caso voglio chiamare la funzione js, ad esempio, selezionando una voce da una dropdown, ho fatto qualcosa del tipo:

     protected void CallJSFunction(string fn)
            {
                // definisco il nome e il tipo del client script
                String csName = "ClickScript";
                Type csType = this.GetType();

                // recupero un ClientScriptManager reference dalla Page class.
                ClientScriptManager cs = Page.ClientScript;

                // controllo se il client script è già registrato
                if (!cs.IsClientScriptBlockRegistered(csType, csName))
                {
                    StringBuilder csText = new StringBuilder();
                    csText.Append("<script type=\"text/javascript\">");
                    csText.Append(fn);
                    csText.Append("</script>");
                    cs.RegisterClientScriptBlock(csType, csName, csText.ToString());
                }

            }

    e quindi chiamo:


    CallJSFunction(string.Concat("ShowDialog('", SPContext.Current.Site.RootWeb.Url, "/_layouts/RS.NewDoc/ModelliOfferte.aspx')"));

    dove la funzione js:

    function ShowDialog(url) {
        var options = SP.UI.$create_DialogOptions();
        options.width = 500;
        options.height = 250;
        options.url = url
        SP.UI.ModalDialog.showModalDialog(options);
    }

    si trova in un file esterno (nella mia classe ho dichiarato la costante: const string jsScriptURL = "/_catalogs/masterpage/jsFunctions.js";). Ma ottengo un errore.

    C'è da tenere presente che nella solita web part uso un hyperlink come nell'esempio microsoft unziona tutto bene:


    HtmlGenericControl scriptInclude = new HtmlGenericControl("script");
                scriptInclude.Attributes.Add("src", SPContext.Current.Site.RootWeb.Url + jsScriptURL);
                Controls.Add(scriptInclude);
                HyperLink link = new HyperLink();
                link.Text = "Modelli Offerte";
                link.NavigateUrl = string.Concat("javascript: ShowDialog('", SPContext.Current.Site.RootWeb.Url, "/_layouts/RS.NewDoc/ModelliOfferte.aspx')");
                this.Controls.Add(link);

    ciao

    grazie

     

    mercoledì 24 novembre 2010 12:26
  • Ciao Stefano.
    Fammi capire.. vuoi praticamente lanciare la funzione javascript alla modifica della selezione di una dropdownlist ?
    Per queste hai abilitato l'autopostback e gestito l'evento SelectedIndexChanged e da li dentro vuoi chiamare la funzione javascript ?

    Se è così e non hai da fare computazioni lato server, probabilmente ti conviene farlo direttamente tramite javascript (attraverso l'attributo "onChange").
    Altrimenti, non è il massimo ma puoi mettere un controllo Literal nella tua web part e mettere nella sua proprietà Text la chiamata alla tua funzione javascript. Una cosa di questo tipo:

    <script language="javascript"> ShowDialog("www.peppedotnet.it"); </script>
    

    Se non è così, spiegami meglio quel che vuoi fare.

    A presto
    Peppe


    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    giovedì 25 novembre 2010 09:08
  • Ciao:

    vuoi praticamente lanciare la funzione javascript alla modifica della selezione di una dropdownlist : SI
    Per queste hai abilitato l'autopostback e gestito l'evento SelectedIndexChanged e da li dentro vuoi chiamare la funzione javascript : SI

    Se chiamo (v. post precedente):

    CallJSFunction(string.Concat("ShowDialog('", SPContext.Current.Site.RootWeb.Url, "/_layouts/RS.NewDoc/ModelliOfferte.aspx')"));

    mi viene generato l'html:

    <script type="text/javascript">ShowDialog('http://stefano-pca:24542/_layouts/RS.NewDoc/ModelliOfferte.aspx')</script>

    ma non viene eseguito, debugando mi dice 'Richiesto oggetto' in corrispondenza della riga precedente, come se la ShowDialog() non fosse definita. Se la solita riga la cambio, ad esempio, con:

    CallJSFunction(string.Concat("alert('", SPContext.Current.Site.RootWeb.Url, "/_layouts/RS.NewDoc/ModelliOfferte.aspx')"));

    funziona correttamente.

    Se nella gridview, ad esempio, aggiungo un hyperlink con la proprietà NavigateUrl settata a 'http://stefano-pca:24542/_layouts/RS.NewDoc/ModelliOfferte.aspx' la modal dialogbox viene aperta senza problemi.

    spero di essermi fatto capire

    grazie

    stefano

     

    giovedì 25 novembre 2010 09:59
  • ciao,

    il problema è proprio questo: la funzione javascript ShowDialog(...) generata dalla CallJSFunction(...) (nel SelectedIndexChanged della dropdown) non viene vista. Mentre viene vista quando uso, ad esempio, un hyperlink.

    Nell'elemento Modulo che ho creato ho un file Elements.xml così configurato:


    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Module Name="Scripts" List="116" Url="_catalogs/masterpage">
      <File Path="Scripts\jsFunctions.js" Url="jsFunctions.js" Type="GhostableInLibrary" />
    </Module>
    </Elements>

    Ho provato anche a mettere la definizione della ShowDialog(...) direttamente nell'HTML della webpart (VisualWebPart1UserControl.ascx) ma non cambia niente.

    Dove diavolo la devo piazzare questa benedetta funzione js per poter essere usata in questo modo?

    grazie

    stefano

     

    venerdì 26 novembre 2010 09:29
  • ... nessuna idea?

    grazie

    stefano

     

    venerdì 26 novembre 2010 11:08
  • Ciao Stefano.
    Il tuo file javascript l'hai installato nella master page library a quanto vedo.
    Hai inserito la referenza a questo file prima della locazione del tuo script ?

    Quindi
    <script src="..." ... />

     


    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    venerdì 26 novembre 2010 12:04
  • Ciao Giuseppe, si io penso di averlo fatto ma probabilmente nel modo sbagliato. Ho inserito '<script src=...' nella CallJSFunction(...) prima di '<script type="text/javascript">ShowDialog(...) ...' e quello che succede è che l'errore non viene segnalato ma la modal dialog non si apre e per quello che vedo neanche si apre e richiude (pensavo a una tale eventualità in seguito a un postback). Potresti mica indicarmi come lo scriveresti tu il javascript da inserire nella CallJSFunction(...).

    grazie

    stefano


    sabato 27 novembre 2010 08:07
  • Prova a fare così allora.
    Al posto di installare il tuo file .js nella libreria di master page, installalo tramite una custom action.

    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
     <CustomAction
       Id="Install JS"
       ScriptSrc="/_layouts/TUOFOLDER/TUOFILE.js"
       Location="ScriptLink"
       Sequence="100">
     </CustomAction>
    </Elements> 
    

    Così sei sicuro che viene messo in alto nella pagina.
    Poi mappi la folder "Layouts" tramite Visual Studio 2010, crei li sotto la cartella "TUOFOLDER" e ci metti dentro il file "TUOFILE.js"


    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    sabato 27 novembre 2010 10:29
  • Ciao Giuseppe, grazie per la risposta. Installando tramite Custom Action si risolve il problema di visibilità della function js però ottengo un errore:

    Messaggio: Proprietà o metodo non supportati dall'oggetto
    Linea: 2
    Carattere: 5
    Codice: 0
    URI: http://stefano-pca:24542/_layouts/rs.newdoc/jsfunctions.js

    la funzione js è:

    function ShowDialog(url) {
        var options = SP.UI.$create_DialogOptions();
        options.width = 500;
        options.height = 250;
        options.url = url;
    }

    cioè non viene riconosciuto il javascript OM (se tolgo SP.UI etc. etc. e metto, ad esempio, una alert funziona)

    ho provato ad aggiungere all'.ascx qualcosa tipo:


    <SharePoint:ScriptLink Name="SP.js" runat="server" OnDemand="true" Localizable="false" />

    ma non cambia niente.

    Inoltre c'è da notare che non funziona più neanche l'hyperlink che invece funzionava a dovere - anche riusando il vecchio elements.xml (quello con <Module Name="Scripts" List="116" Url="_catalogs/masterpage"> tanto per intenderci)

    Cosa può essere successo?

    grazie

    stefano

     

    lunedì 29 novembre 2010 14:46
  • ciao, ho cancellato la cache del browser ed ora l'hyperlink rifunziona però la dropdown mi da ancora il solito errrore ...

    grazie

    stefano

     

    lunedì 29 novembre 2010 15:57
  • Ciao Stefano.
    Sembra che non trovi il namespace SP.UI .. puoi controllare se nell'html della tua pagina c'è il riferimento al file SP.js ?
    Se è presente, puoi controllare anche che il tuo file .js viene renderizzato prima della referenza al file SP.js ?

    Poi, al posto di chiamare direttamente la tua funzione, prova ad utilizzare la funzione ExecuteOrDelayUntilScriptLoaded() in questo modo:

     

    ExecuteOrDelayUntilScriptLoaded(ShowDialog('/_layouts/tuapagina.aspx'), 'sp.js');
    

    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    martedì 30 novembre 2010 09:13
  • ciao, a fine pagina html trovo:

    <script type="text/javascript">RegisterSod("sp.js", "\u002f_layouts\u002fsp.debug.js?rev=ZxKLSxgBwx\u00252BTUovsF0wy2A\u00253D\u00253D");RegisterSodDep("sp.js", "sp.core.js");RegisterSodDep("sp.js", "sp.runtime.js");RegisterSodDep("sp.js", "sp.ui.dialog.js");RegisterSodDep("sp.js", "sp.res.resx");</script>

    insieme ad altre 'RegisterSod' per 'sp.ui.dialog.js' etc. Mentre il mio file .js si trova all'inizio nell'head:

    document.write('<script type="text/javascript" src="/_layouts/rs.newdoc/jsfunctions.js"></' + 'script>');

    Ho provato ExecuteOrDelayUntilScriptLoaded(ShowDialog('/_layouts/tuapagina.aspx'), 'sp.js'); ma ho sempre il solito errore.

    codice generato dalla CallJSFunction(...):
    <script type="text/javascript">ExecuteOrDelayUntilScriptLoaded(ShowDialog('http://stefano-pca:24542/_layouts/RS.NewDoc/ModelliOfferte.aspx'),'sp.js')</script>

    ciao

    grazie

     

    martedì 30 novembre 2010 09:57
  • ciao, spero di non stressare troppo ma non so più cosa provare, devo abbandonare l'idea? ...

    grazie

    stefano

     

    mercoledì 1 dicembre 2010 10:04
  • Ciao Stefano.

    Innanzitutto ti consiglio di provare qualche debugger javascript per capire esattamente dov'è il problema.
    A mio avviso, sembra che non venga riconosciuto il namespace SP. quindi potresti provare ad inserire esplicitamente la referenza a quel file .js prima della referenza al tuo scirpt.

    <script type="text/javascript" src="/_layouts/SP.js"></scirpt>
    <script type="text/javascript">ExecuteOrDelayUntilScriptLoaded(ShowDialog('http://stefano-pca:24542/_layouts/RS.NewDoc/ModelliOfferte.aspx'),'sp.js')</script>

    (conta che questo è proprio una prova. nel caso in cui funzionasse è meglio utilizzare il controllo ScriptLink come spiegato qua: http://www.codeproject.com/Articles/60348/SharePoint-2010-Client-Object-Model-for-JavaScript.aspx)

    se così non funziona, allora il problema è un altro. ma senza un tool di debug del codice javascirpt è difficile capire cosa sta succedendo nella tua pagina.
    io uso gli strumenti di internet explorer e quelli di google chrome, ma penso che uno valga l'altro.


    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    mercoledì 1 dicembre 2010 12:12
  • Ciao Giuseppe e grazie per l'aiuto, purtroppo non funziona neanche con la referenza esplicita infatti così facendo ho il seguente errore:

    Messaggio: Sys.ArgumentUndefinedException: Il valore non può essere indefinito.
    Nome parametro: baseType
    Linea: 1718
    Carattere: 71
    Codice: 0
    URI: http://stefano-pca:24542/ScriptResource.axd?d=BaBu3wjY2w8G4I3v-e5l0KW6fmKjslSPvBM7mS-8L5_ZYqp-FxS2hqiy_-wRxD860Ltde9sx9eTrCXLhOKUIQ3_mpqQszmPsFUocAprfdg81&t=ffffffffec2d9970


    Messaggio: Sys.InvalidOperationException: Il tipo SP.PermissionKind è già stato registrato. È possibile che il tipo sia stato definito più volte o che il file di script che lo definisce sia già stato caricato. Il problema può essere stato causato da una modifica di impostazioni durante un aggiornamento parziale.
    Linea: 2315
    Carattere: 38
    Codice: 0
    URI: http://stefano-pca:24542/ScriptResource.axd?d=BaBu3wjY2w8G4I3v-e5l0KW6fmKjslSPvBM7mS-8L5_ZYqp-FxS2hqiy_-wRxD860Ltde9sx9eTrCXLhOKUIQ3_mpqQszmPsFUocAprfdg81&t=ffffffffec2d9970

    l'errore alla lina 1718:

    Type.prototype.registerClass = function Type$registerClass(typeName, baseType, interfaceTypes) {
        /// <summary locid="M:J#Type.registerClass" />
        /// <param name="typeName" type="String"></param>
        /// <param name="baseType" type="Type" optional="true" mayBeNull="true"></param>
        /// <param name="interfaceTypes" parameterArray="true" type="Type"></param>
        /// <returns type="Type"></returns>
        var e = Function._validateParams(arguments, [
            {name: "typeName", type: String},
            {name: "baseType", type: Type, mayBeNull: true, optional: true},
            {name: "interfaceTypes", type: Type, parameterArray: true}
        ]);
        if (e) throw e;
        if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw Error.argument('typeName', Sys.Res.notATypeName);
        var parsedName;
        try {
            parsedName = eval(typeName);
        }
        catch(e) {
            throw Error.argument('typeName', Sys.Res.argumentTypeName);
        }
        if (parsedName !== this) throw Error.argument('typeName', Sys.Res.badTypeName);
        if (Sys.__registeredTypes[typeName]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, typeName));
    1718:    if ((arguments.length > 1) && (typeof(baseType) === 'undefined')) throw Error.argumentUndefined('baseType');
        if (baseType && !baseType.__class) throw Error.argument('baseType', Sys.Res.baseNotAClass);
        this.prototype.constructor = this;
        this.__typeName = typeName;
        this.__class = true;
        if (baseType) {
            this.__baseType = baseType;
            this.__basePrototypePending = true;
        }
        Sys.__upperCaseTypes[typeName.toUpperCase()] = this;
        if (interfaceTypes) {
            this.__interfaces = [];
            this.resolveInheritance();
            for (var i = 2, l = arguments.length; i < l; i++) {
                var interfaceType = arguments[i];
                if (!interfaceType.__interface) throw Error.argument('interfaceTypes[' + (i - 2) + ']', Sys.Res.notAnInterface);
                for (var methodName in interfaceType.prototype) {
                    var method = interfaceType.prototype[methodName];
                    if (!this.prototype[methodName]) {
                        this.prototype[methodName] = method;
                    }
                }
                this.__interfaces.push(interfaceType);
            }
        }
        Sys.__registeredTypes[typeName] = true;
        return this;
    }

    Nel caso non faccia le ultime modifiche che mi hai suggerito il debugger si ferma nella mia funzione js:

    function ShowDialog(url) {
        var options = SP.UI.$create_DialogOptions();
        options.width = 500;
        options.height = 250;
        options.url = url;

        SP.UI.ModalDialog.showModalDialog(options);
    }

    con il seguente errore (nella riga in bold):


     Proprietà o metodo non supportati dall'oggetto

    Forzando il debugger ad andare avanti arrivo in:  init.debug.js?rev=j16UPZkj2YKkNwcwwgZ70w%3D%3D, Riga 5108 Carattere 5

    function NotifyEventAndExecuteWaitingJobs(eventName)
    {ULSA13:;
     if(!g_ExecuteOrWaitJobs)
      return;
     var eventInfo=g_ExecuteOrWaitJobs[eventName];
     if (eventInfo==null || typeof(eventInfo)=="undefined")
     {
      eventInfo=new Object();
      eventInfo.notified=true;
      eventInfo.jobs=new Array();
      g_ExecuteOrWaitJobs[eventName]=eventInfo;
     }
     else
     {
      if (eventInfo.jobs !=null)
      {
       for (var i=0; i < eventInfo.jobs.length; i++)
       {
        var func=eventInfo.jobs[i];
    5108:    func();                                        <== Previsto oggetto
       }
      }
      eventInfo.notified=true;
      eventInfo.jobs=new Array();
     }
    }

    il debugger che uso è quello di internet explorer.

    grazie

    stefano

     

    giovedì 2 dicembre 2010 08:15
  • Ciao stefano. Proviamo allora a cambiare il codice per l'apertura della finestre di dialogo.

    function demoCallback(dialogResult, returnValue)
    {
      SP.UI.Notify.addNotification('Operation Successful!');
    }
    
    
    function MyShowDialog(url)
    {
      var options = {       
       url: url,
       tite: 'Move Documents',
       allowMaximize: false,
       showClose: false,
       width: 800,
       height: 600,
       dialogReturnValueCallback: demoCallback };
      SP.UI.ModalDialog.showModalDialog(options);
    }
    

     

    Fammi sapere
    Peppe


    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    giovedì 2 dicembre 2010 10:32
  • Ciao, ho provato ma ottengo:

    Messaggio: Previsto oggetto
    Linea: 124
    Carattere: 1
    Codice: 0
    URI: http://stefano-pca:24542/Lists/RC/AllItems.aspx

    ho messo le tue funzioni nello stesso file .js (jsfunctions.js) dove c'è la ShowDialog ed ho chiamato la MyShowDialog tramite:

    CallJSFunction(string.Concat("MyShowDialog('", SPContext.Current.Site.RootWeb.Url, "/_layouts/RS.NewDoc/ModelliOfferte.aspx')"));

    che mi genera il codice:

    <script type="text/javascript">MyShowDialog('http://stefano-pca:24542/_layouts/RS.NewDoc/ModelliOfferte.aspx')</script>

    In testa al file c'è:

    document.write('<script type="text/javascript" src="/_layouts/rs.newdoc/jsfunctions.js"></' + 'script>');

    sembra che non veda la MyShowDialog e non capisco perché visto che vede la ShowDialog che si trova nello stesso file js.

    grazie

    stefano

     

    giovedì 2 dicembre 2010 11:06
  • ciao ho cancellato la cache del browser e la MyShowDialog viene vista! Però ho il solito errore:

    Messaggio: Proprietà o metodo non supportati dall'oggetto
    Linea: 26
    Carattere: 5
    Codice: 0
    URI: http://stefano-pca:24542/_layouts/rs.newdoc/jsfunctions.js

    e cioè il debugger si pianta in:

    SP.UI.ModalDialog.showModalDialog(options);

    cioè sembra che siamo alle solite e cioè che non venga riconosciuto il namespace SP.UI..

    ciao

    grazie

     

    giovedì 2 dicembre 2010 11:11
  • Ok, quindi l'errore è sempre quello, manca la referenza al namespace SP.UI. Nel tuo caso serve quindi caricare il file SP.UI.Dialog.js oltre che ad SP.js

    Hai provato ad inserire il controllo ScriptLink ?

    <SharePoint:ScriptLink Name="SP.js" runat="server" OnDemand="true" Localizable="false" />
    <SharePoint:ScriptLink Name="SP.UI.Dialog.js" runat="server" OnDemand="true" Localizable="false" />


    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    venerdì 3 dicembre 2010 11:58
  • Ciao Giuseppe, ho provato anche con lo ScriptLink ma SP.UI non viene caricato:

    Messaggio: Proprietà o metodo non supportati dall'oggetto
    Linea: 26
    Carattere: 5
    Codice: 0
    URI: http://stefano-pca:24542/_layouts/rs.newdoc/jsfunctions.js

    grazie

    stefano

     

    lunedì 6 dicembre 2010 07:36
  • Ciao a tutti,

    ho risolto il problema, si tratta di non usare il ClientScriptManager, al suo posto si deve usare lo ScriptManager ad esempio:

    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "idOpenWord", fn, true);

    ciao

    grazie

     

    giovedì 9 dicembre 2010 11:33
  • Meglio così ! :)

    A presto
    Peppe


    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    giovedì 9 dicembre 2010 11:54
  • Ciao si il problema è risolto però ora c'è un altro piccolo problemino: le misure della finestra di dialog non si aggiornano.

    Voglio dire se cambio options.width e options.height il cambiamento non si riflette 'immediatamente' ma in apparenza casualmente. Ho pensato che fosse sicuramente un problema di cache del browser ma anche cancellando la cache non si risolve. Questo avviene sia sul PC dove sviluppo (con Windows 7) che su altri PC (con XP, Win 2003).

    La funzione:

    function ShowDialog(url) {

        var options = SP.UI.$create_DialogOptions();
        options.width = 600;
        options.height = 350;
        options.url = url;

        SP.UI.ModalDialog.showModalDialog(options);
    }

    si trova in un file js.

    Se la metto nell'.aspx:

    function ShowDialog1(url) {

        var options = SP.UI.$create_DialogOptions();
        options.width = 600;
        options.height = 350;
        options.url = url;

        SP.UI.ModalDialog.showModalDialog(options);
    }

    e la chiamo, ad esempio, <a href="Javascript:ShowDialog1();">AAAAA</a> funziona correttamente nel senso che cambiando le dimensioni del dialog queste vengono variate immediatamente come è giusto che sia.

    grazie

    stefano

     

    venerdì 10 dicembre 2010 08:33
  • Ciao Stefano.
    A mio parere non c'è alcuna differenza nel comportamento che deve avere una funzione javascript inserita in una pagina o in un file .js esterno. Quindi, soprattutto poi se il comportamento è casuale, io ripropongo il problema di cache.
    Puoi provare a fare così: aprire internet explorer, scegli il pulsante F12 e nel menu opzioni "cache" scegli la voce "Always refresh from server" e poi la voce "Clear browser cache". Te lo dico perchè se il tuo file .js è messo in qualche locazione all'interno del contesto di SharePoint (che sia una document libary o qualche cartella all'interno della SharePoint root - vedi la cartella layouts), questo viene messo in cache dal browser al 100%.


    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    lunedì 13 dicembre 2010 08:08
  • Ciao Giuseppe,

    anche io sono convinto che sia un problema di cache ed il modo con il quale la svuoto è proprio quello che dici tu, F12 dal browser etc. etc. però, di fatto, non funziona ...

    Tieni presente che il problema esiste anche da altri PC con XP, WIN 2003 etc. L'unico modo per far funzionare la cosa è cambiare il nome della funzione js.

    grazie

    stefano

     

    lunedì 13 dicembre 2010 08:51
  • Ciao, altra domanda: come faccio a richiudere il dialog box quando premo il bottone OK dovendo anche eseguire del codice lato server?

    Questo, per il bottone 'Annulla', funziona ma non c'è nessun codice lato server da eseguire:
    <asp:Button ID="btnOfferteAnnulla" runat="server" Font-Names="Calibri" Height="22px" Text="Annulla" Width="62px" 
                       OnClientClick = "SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.cancel, 'Cancel clicked'); return false;" />

    Questo, con associato un evento lato server non funziona, vale a dire la dialog viene chiusa ma il codice lato server non viene eseguito (l'evento btnOcimOK_Click() non viene chiamato):
    <asp:Button ID="btnOcimOK" runat="server" Font-Names="Calibri" Height="22px" 
                       onclick="btnOcimOK_Click" OnClientClick = "SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.OK, 'OK clicked'); return false;" Text="OK" Width="62px" />

    grazie

    stefano

     

     

    lunedì 13 dicembre 2010 09:19
  • Io ho usato questo codice:

     

    Context.Response.Write("<script type='text/javascript'>window.frameElement.commitPopup();</script>");
    Context.Response.Flush();
    Context.Response.End();
    

     

    inserito alla fine dell'event handler dell'eveno Click del mio bottone (togliendo chiaramente il contenuto dell'attributo OnClientClick).

    A presto
    Peppe

     

    ps: per le prossime volte, crea una nuova discussione per una nuova domanda.


    Giuseppe Marchi - SharePoint MVP
    www.peppedotnet.it
    www.dev4side.com
    www.sharepointcommunity.it
    Twitter: @PeppeDotNet
    lunedì 13 dicembre 2010 12:55
  • Ciao Giuseppe il codice che mi hai suggerito mi risolve il problema grazie!

    Scusami per aver inserito una nuova domanda in un 'vecchio' post non si ripeterà.

    grazie

    stefano

     

    martedì 14 dicembre 2010 08:04