2010-01-04 12 views
5

Ho un pulsante ASP.net btnAccetto in un controllo del pannello che verrà mostrato al clic di un altro pulsante in un controllo modalViewextender.Pulsante server ASP.net Clic di lato non attivo

Il controllo onclick di btnAccept non viene attivato. Ma se inseriscoClientClick, viene attivato. Ma voglio lavorare su Click al server. Non ricevo errori e non sono in grado di capirlo.

Qualsiasi aiuto sarà molto apprezzato.

Di seguito si riporta il codice per il pulsante

<cc1:ModalPopupExtender ID="mdldigiSign" runat="server" Enabled="True" 
    BackgroundCssClass="modalBackground" TargetControlID="pnlSign" 
    PopupControlID="pnlSign" CancelControlID="lblCloseSign" 
    OnCancelScript="hideDigiSignDialog();" DynamicServicePath=""> 
</cc1:ModalPopupExtender> 
<asp:Panel ID="pnlSign" runat="server"> 
    <table border="0" class="SubMenu" align=center > 
     <tr> 
      <td align="right" valign="top" style="height: 30px"> 
       <label id="lblCloseSign" runat="server" title="Close"> 
        <a href="#"> 
         <img src="images/close_button.gif" border="0" 
           alt="Close" /> 
        </a> 
       </label> 
      </td> 
     </tr> 
     <tr><td>Respondent's Signature</td></tr> 
     <tr> 
      <td align=center > 
       <OBJECT id=esCapture1 
        classid=clsid:84C046A7-4370-4D91-8737-87C12F4C63C5 
        width="150" height="80" codebase="websignax.cab" VIEWASTEXT> 
        <param name="useslibrary" value="websignAx"> 
        <param name="useslibrarycodebase" value="websignax.cab"> 
        <param name="useslibraryversion" 
         value="7,1,0,1">IntegriSign Signature Control 
       </OBJECT> 
       <br /> 
       <br /> 
       <INPUT onclick=signNow() type=button value="StartSign" 
        name=B1 id=B1> 
       &nbsp;&nbsp; 
       <input type="button" value="GetData" name="B2" 
        onclick=getData()> 
       <br /> 
       <asp:HiddenField ID="hdsignature" runat=server /> 
      </td> 
     </tr> 
     <tr> 
      <td align="center"> 
       <asp:Button ID="btnAccept" runat="server" 
        Text="Accept Settlement" /> 
      </td> 
     </tr> 
    </table> 
</asp:Panel> 

Grazie

+0

Non ho dimestichezza con modalviewextender. Intendi ModalPopupExtender: http://www.asp.net/ajax/ajaxcontroltoolkit/samples/modalpopup/modalpopup.aspx? In caso contrario, potresti pubblicare un link al controllo? –

+0

Stai utilizzando la proprietà .Visible? –

+0

Un problema simile: http://stackoverflow.com/questions/1785764/asp-net-control-events-not-firing-inside-repeater –

risposta

4

senza vedere alcun codice (che sarebbe davvero aiutarci), ho intenzione di indovinare che si sta aggiungendo in modo dinamico la vostra btnAccept al pagina, e non ricrearlo correttamente sul postback.

Se non si sta creando btnAccept durante la fase di avvio del ciclo di vita, sarà necessario monitorare il proprio ViewState manualmente. Se non lo stai creando fino a PreRender(), allora avrai superato il punto in cui sono stati attivati ​​i gestori di eventi.

Se pubblichi un codice, sarebbe molto più facile da diagnosticare.

+0

womp, ho appena aggiornato la mia domanda con il codice. Grazie. – acadia

+0

stai impostando il "OkButtonID" sul modal popup extender ovunque? Come appare il code-behind? E come ha detto Steve, l'autoeventwireup è impostato su false? – womp

1

Probabilmente la direttiva di pagina ha questa impostazione: eventwireup = "false". Se questo è vero, l'evento non si attiva.

Come già detto, sarebbe utile vedere il codice. Puoi includere la direttiva della pagina nel tuo post?

0

Mi chiedo se è possibile che si verifichi un problema nel fare troppe cose sul lato client che lo stato della visualizzazione sta diventando non valido e questo è ciò che sta bloccando la chiamata lato server dall'attivazione.

Intermittent Invalid Viewstate Error in ASP.NET Web pages può anche aiutare. Hai confermato che c'è una richiesta per arrivare al server?

1
  1. Il controllo non ha un gestore OnClick assegnato.
  2. Si dispone di gestori OnClick assegnati per i tag <input>, ma ciò non funzionerà; per prima cosa, tutti i tag che invocano azioni sul lato server devono avere il set runat="server" impostato; in secondo luogo, dovresti usare un controllo <asp:TextBox>.
Problemi correlati