Non chiudere il Panel

giovedì 20 agosto 2009 - 20.24

venzo Profilo | Junior Member

Ho creato un Pannello per la modifica delle righe di una GridView. Funziona tutto.
Vorrei però evitare che alla pressione dei pulsanti si chiuda il pannello, ma solo quando inserisco la riga che definisce hide il pannello.
Ho postato il codice che uso



<asp:Button ID="btnSelect" runat="Server" Style="display: none" />
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
TargetControlID="btnSelect"
PopupControlID="pnlModalPanel"
CancelControlID="btnCancel"
BackgroundCssClass="modalBackground"
DropShadow="false">
</cc1:ModalPopupExtender>

<cc1:DragPanelExtender ID="DragPanelExtender1" runat="server" TargetControlID="pnlModalPanel" DragHandleID="PersonCaption">
</cc1:DragPanelExtender>

<asp:Panel ID="pnlModalPanel" runat="server" CssClass="modalPopup" Style="display: none;" Width="500px">
<asp:Panel ID="PersonCaption" runat="server" CssClass="modalPopupTitolo"
Style="margin-bottom: 10px; cursor: hand;" >Edita Parametro</asp:Panel>
<div class="divColLast">
<asp:TextBox ID="TextBox0" runat="server" MaxLength="64" Width="250" Visible="False"></asp:TextBox>
</div>
<div class="divCol">Descrizione parametro</div>
<div class="divColLast">
<asp:TextBox ID="TxtDescrizioneParametro" runat="server" MaxLength="64" Width="356" ></asp:TextBox>
</div>


<div style="white-space: nowrap; text-align: center;">
<asp:Button ID="btnSalvaRiga" runat="server" Text="Salva"
CausesValidation="False" UseSubmitBehavior="False" />
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
</div>
</asp:Panel>


Nel Load della pagina ho settato il ckick con una chiamata ad una funzione javascript

btnSalvaRiga.Attributes.Add("onClick", "VerificaDati()")

se tutto va bene devo chiudere il pannello.

Gluck74 Profilo | Guru

Quando dici:

>Vorrei però evitare che alla pressione dei pulsanti si chiuda
>il pannello, ma solo quando inserisco la riga che definisce hide
>il pannello.

Intendi il pulsante salva? oppure tutti i pulsanti del pannello?
Non capisco bene il problema.
Inoltre, usi il partialRendering oppure un webMethod/pageMethod?
Il verificaDati() se non ho capito bene è javascript lato client. Dopo aver verificato (immagino) i dati, cosa fa?

posso fare una ipotesi:

WebMethod/pageMethod
In questo caso puoi chamare la funzione con handler agli eventi di ritorno dal service:

function verificaDati() { //chiamata al webMethod/pageMethod (esempio) PageMethods.Salva(obj, onSucces, onFailure); } function onSuccess(obj) { //obj è il valore di ritorno dal metodo var pannello = $find("pannBehavior"); pannello.hide(); } function onFailure(error) { var message = error.get_message(); var statusCode = error.get_statusCode(); var exceptionType = error.get_exceptionType(); var timedout = error.get_timedOut(); alert('no no, sbagliato\n\nPerché?\n' + message); }

venzo Profilo | Junior Member

Si, in effetti ho una funzione javascript che ritorna true se tutto è ok.
Ho provato a gestire il PageMethods.Salva(obj, onSucces, onFailure), come da te illustrato. E' funzionante.
C'è qualche piccolo problema, quando dalla funzione chiamata con il metodo descritto, si prova o a chiamare un'altra funzione o addirittura scrivendo:
ModalPopupExtender1.Hide. Mi restituisce un errore.

Gluck74 Profilo | Guru

un PageMethod chiamato tramite javascript, ha accesso molto limitato.
magari posta un po di codice o specifica meglio.

Dal metodo non puoi girovagare tra il codice della pagina, eventi ed oggetti.
Se usi una chiamata Page/Web method, non hai riferimenti agli oggetti come il modalPopup, quindi gestisci l'evento di ritorno onSucces, onFailure come mostrato, altrimenti devi ristrutturare la pagina ed usare magari il partialRendering, ma è un pochino più complesso e poi non è ajax puro
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5