Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    45

    [c#] Aprire una modal box

    Ciao a tutti

    Vi presento il mio problema. Io ho una procedura che estrae dei dati da un database e crea una tabella riportando i dati dei vari record.
    Quello che vorrei fare e avere un campo di questa tabella con un link che una volta cliccato apre una modal box che contiene dei dati sempre relativi a quel record ma che non sono riportati nella pagina per motivi di spazio.
    Qualcuno sa aiutarmi?
    Se hai bisogno di uno spazio di
    archiviazione cloud gratuito clicca
    http://db.tt/mTNdaaN e entrambi otteremo spazio extra
    gratis

  2. #2
    se i dati non sono nella pagina...... AJAX per forza.

    Ti crei un webservice con una funzione, che prende come parametro l'identificativo del record, e restituisce il codice HTML già pronto da essere visualizzato (una delle ipotesi).

    Nella pagina, metti un DynamicPopulateExtender (di AjaxControlToolkit) che richiama il webservice e visualizza i dati, il tutto dentro un modalPopUpExtender (sempre di ajaxcontroltoolkit).

    Naturalmente del grid_rowDataBound agganci, per ogni riga, il link all'apertura del popup e fai partire il dynamicpopulate.

    qui un esempio:
    http://www.asp.net/ajaxLibrary/AjaxC...cPopulate.aspx

    dovresti riuscire..... casomai fai un fischio (ma prima prova da solo)

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    45
    Grazie mille.

    Volendo posso salvarli i dati nella pagina perche' posso aggiungere i campi che mi servono alla query
    Se hai bisogno di uno spazio di
    archiviazione cloud gratuito clicca
    http://db.tt/mTNdaaN e entrambi otteremo spazio extra
    gratis

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    45
    Allora mentre cerco di installare l'AjaxControlToolkit ottengo questo errore:
    Install failed. Rolling back...
    Install-Package : Could not install package 'AjaxControlToolkit 4.1.60623'. You are trying to install this package into
    a project that targets '.NETFramework,Version=v2.0', but the package does not contain any assembly references that are compatible with that framework. For more information, contact the package author.
    At line:1 char:16
    + Install-Package <<<< AjaxControlToolkit
    + CategoryInfo : NotSpecified: ( [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Com mands.InstallPackageCommand

    Quando si dice partire con il piede sbagliato.
    Quello che non riesco a capire e' perche' parli di framework 2.0 quando sul pc e' presente il 4.0

    Io non ho mai usato Ajax in precedenza e nemmeno asp.net e c# ma nell'azienda dove sto facendo lo stage hanno bisogno di questa implementazione.

    C'e' qualche altro espediente che posso usare? Non devo necessariamente usare una modal box andrebbe bene anche un popup.
    Se hai bisogno di uno spazio di
    archiviazione cloud gratuito clicca
    http://db.tt/mTNdaaN e entrambi otteremo spazio extra
    gratis

  5. #5
    non dipende dal framework installato sulla macchina, ma da quello che stai usando nel progetto.

    Tasto destro sul nome del progetto/sito -> proprietà -> scheda Application
    qui guarda il TargetFramework.

    Inoltre, come lo stai installando l'AjaxControlToolkit? chi ti da questo errore? NuGet?

    potresti anche semplicemente scaricare AjaxControlToolkit.dll (bello pronto già compilato) e copiarlo nella bin del sito.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    45
    Ok grazie mille, si sto usando NuGet. Se scarico il file .dll non ho poi questi problemi con il framework?
    Se hai bisogno di uno spazio di
    archiviazione cloud gratuito clicca
    http://db.tt/mTNdaaN e entrambi otteremo spazio extra
    gratis

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    45
    Ok ho installato l'Ajax Toolkit e iniziato a fare qualcosa e sono arrivato a questo punto

    Codice bottone che chiama il modal popup:
    <asp:Button ID="btnShow" runat="server" Text="Details" OnClick="clik_on_link" />

    Codice del Modal popup:
    <asp:Button ID="btnShow" runat="server" Text="Details" OnClick="clik_on_link" />
    <asp:ModalPopupExtender ID="btnShow_ModalPopupExtender" runat="server"
    TargetControlID="btnShow" OkControlID="btnDlgOK" PopupControlID="pnlPopup"
    DynamicControlID="lblInfo"
    DynamicServicePath="GetDetails.asmx"
    DynamicServiceMethod="GetData"
    BackgroundCssClass="modal"
    DropShadow="true"
    >
    </asp:ModalPopupExtender>

    Codice pagina c# per mostrare la modal box sull'evento onclick:

    protected void clik_on_link(object sender, EventArgs e)
    {
    btnShow_ModalPopupExtender.Show();

    }

    Tutto cio' che ottengo e' un refresh della pagina. Sapete dirmi cosa sbaglio?
    Se hai bisogno di uno spazio di
    archiviazione cloud gratuito clicca
    http://db.tt/mTNdaaN e entrambi otteremo spazio extra
    gratis

  8. #8
    in pratica tu hai si legato il bottone al modalpopup, ma stai eseguendo lo show da codebehind, quindi solo dopo il postback.
    invece dovresti far apparire il modal con javascript, senza fare il postback che non serve.

    quindi togli pure la function sul click del bottone, e richiama la modal da client.
    quindi semplicemente togli OnClick dal bottone

    codice:
    <asp:Button ID="btnShow" runat="server" Text="Details" />

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2012
    Messaggi
    45
    ok tolto quello che hai detto tu. Ora devo scrivere uno script javascript per lanciare la modal? Perche' senza scrivere nulla ottengo sempre il refresh della pagina
    Ma sopratutto devo capire come passare un parametro per trovare i dati del record

    PS: scusa se ti rompo ma e' la prima volta che ho a che fare con asp.net c# e ajax. Ho sempre usato php
    Se hai bisogno di uno spazio di
    archiviazione cloud gratuito clicca
    http://db.tt/mTNdaaN e entrambi otteremo spazio extra
    gratis

  10. #10
    non ti preoccupare, siamo qui per questo.

    Strano che ti faccia ancora il refresh della pagina. In teoria la modal funziona da sola; devi solo avere un pulsante che non faccia nulla. Controlla di aver pulito bene il codice, e controlla anche il sorgente della pagina HTML risultante, se rimane qulacosa agganciato al pulsante.


    Per il parametro da passare, puoi agire lato client in questo modo:
    1 - Devi utilizzare l'extender lato client. Quindi utilizza l'attributo BehaviorID:
    codice:
    <asp:ModalPopupExtender ... ... BehaviorID="ClientModalPopupExtender">
    2 - Il metodo del webService deve avere un parametro con nome predefinito
    codice:
    public static string myWebMethod(string contextKey)
    { ... }
    3 - Richiami il modalPopUp da javascript e devi settare il ContextKey (in questo esempio prendendo il valore da una casella di testo)
    codice:
    <asp:Button ID="btnShow" runat="server" Text="Details" OnClientClick="return showModal();" />
    <input type="text" id="txtParametro" />
    codice:
    function showModal() 
    { 
        var modalPopup = $find('ClientModalPopupExtender'); 
        if (modalPopup != null) 
        { 
            var parametro = $get('txtParametro').value;
            modalPopup._DynamicContextKey = parametro; 
            modalPopup.show();
            return false; 
        }    
    }
    Fammi sapere
    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.