2016-03-30 4 views
0

Ich benutze Jquery DataTables, wobei die Daten mit Ajax und C# geladen werden. Für eine der Tabellen muss ich ein Ereignis auslösen, das die Erstellung eines Berichts mithilfe des ASP.NET-Berichtsviewer auslöst.Fire C# codebind von html button

Das Problem, das ich habe, ist um den Knopf herum, um die Methode in den Code hinter der Seite zu feuern.

die Option ColumnDefs verwenden, in JQuery DataTables- machen ich die folgenden, die die Schaltfläche erstellt:

{ 
    "targets": 9, 
    "data": "download link", 
    "render": function(data, type, full, meta) { 
     return '<button id="btnViewReport" type="button" class="remove" runat="server" value="' + data.Id + '">View Report</button>'; 
    } 
} 

Dies zeigt sich in meinem Tisch in Ordnung, aber jetzt muss ich das Click-Ereignis den Bericht abzufeuern. Ich hatte den Eindruck, dass das Hinzufügen von runat = "server" funktionieren würde, aber leider keine Freude.

In erster Linie ist es möglich, eine Schaltfläche mit JQuery hinzufügen, die eine nicht statische Methode aufruft?

+0

Das Problem ist, dass Sie nicht über JavaScript ein serverseitiges Steuerelement zurückgeben können. Ich weiß nicht, ob Sie das wollen, aber Sie könnten Ajax verwenden, um eine bestimmte Webmethode auf Ihrem Codebehind zu treffen. – llouk

+0

Ich kann eine WebMethod gut, aber Sie können dann nicht die asp.net Report Viewer in einer statischen Methode, die die WebMethods sein müssen. –

Antwort

0

Das Problem ist der "Runat-Server". Sie müssen eine HTML-Schaltfläche erstellen (wie diese <button id="myid" class="myclass" ></button>), und eine Funktion mit jQuery machen, dann können Sie Ihre Methode mit QueryString oder einem Ajax-Aufruf aufrufen!

+0

Hallo Federico, schafft das nicht gerade das gleiche Problem? Wenn ich ein WebMethod von Ajax mit C# aufrufen, müssen die WebMethods statisch sein. –