ASP.NET 2.0 – è Necessario fare clic su un collegamento a livello di programmazione

C’è un modo per fare clic su un collegamento a livello di programmazione, in modo che abbia gli stessi effetti come se l’utente fa clic su di esso?

Esempio:

Ho un ASP.NET LinkButton:

<asp:LinkButton id="lnkExport" runat="server" CssClass="navclass">Export</asp:LinkButton>

Ho un link in una sidebar di regia per l’ .pagina aspx che ha questo linkbutton su di esso. Per vari motivi non posso avere il codice per il LinkButton eseguito fino a quando la pagina si è aggiornata — quindi sto cercando un modo per forzare-fare clic su questo LinkButton nel mio codice, una volta che la pagina è completamente caricata. C’è un semplice/fattibile per realizzare questo? Se si tratta di innesco di un evento, si prega di fornire un esempio di codice, se possibile. Grazie.

  • Ho dimenticato di aggiungere… sto usando C# nel mio code-behind.
  • Perché non solo di redirect?
  • Sto scaricando un file utilizzando la Risposta HTTP oggetto, in modo che il Reindirizzamento non è un’opzione. Inoltre, il Link di questa pagina non è generato dalla mia applicazione, ma un app esterne che genera i link da un file XML.
InformationsquelleAutor n2009 | 2009-04-01

 

6 Replies
  1. 0

    Rashack post mostra come farlo. Si può semplicemente farlo in javascript.

    
    function ClickLink() {
      document.getElementById('').click();
    }

    Se si desidera che questo fuoco dopo qualche altro evento, è possibile aggiungere il codice in c# per aggiungere una chiamata a tale funzione sul lato client quando la pagina viene caricata.

    
    Page.ClientScript.RegisterStartupScript(
      this.getType(), 
      "clickLink", 
      "ClickLink();",
      true);
    • Questo funziona a cliccare il link, ma non ha risolto il problema che ho avuto. in definitiva io non credo che ci sia una soluzione diretta-ma ho scoperto che se si apre una nuova finestra di dialogo con il file scaricato ad esso collegato, funziona quasi bene (tranne che per l’extra finestra di dialogo che deve essere chiuso).
    • Buona soluzione. Suppongo: questo.getType() dovrebbe essere questo.GetType()
  2. 1

    Innescando un evento a livello di programmazione di un collegamento attiverà il “onclick” evento, ma non l’azione predefinita(href).

    E dal linkbuttons venire fuori come href, così si potrebbe provare a farlo con Javascript.

    var lnkExport = document.getElementById('<%= lnkExport.ClientID %>');
    if(lnkExport){
       window.location = lnkExport.href;
    }
  3. 1

    Penso certamente che c’è un disegno e l’implementazione di un difetto che ti costringe a concludere come da te descritto.

    Bene, invocando l’evento click non significa nulla, ma l’esecuzione la registrazione dell’evento di metodo.

    Così, il peggiore suggerimento che posso pensare è sufficiente richiamare la funzione a che punto si vuole che accada l’evento click come,

    lnkExport_Click(lnkExport, nuovo EventArgs());

  4. 0

    Non so perché hai bisogno della tua pagina per caricare se sei volendo a livello di codice, fare clic su quel link. Mi consiglia di utilizzare Risposta.Redirect() sul lato server per li reindirizza alla pagina. Non so se ci sono altre giustificate ragioni di questo semplice approccio non funziona…

    –Matt

  5. 0

    Se ho capito quello che stai dicendo:

    <asp:LinkButton id="lnkExport" runat="server" CssClass="navclass" onclick="lnkExport_Click">Export</asp:LinkButton>

    poi nel codebehind o ogni volta chiamare il seguente quando è necessario…

    lnkExport_Click( null, null );

    e assicurarsi che hai lnkExport_Click cablato.

    protected void lnkExport_Click( object sender, EventArgs e )
    {
    //DO Whatever here
    }
  6. 0
    <button onclick="document.getElementById('<%=this.lnkExport.ClienID%>').click()">
     click me</button>

Lascia un commento