我目前正在開發ASP.NET C#網站。 在這個網站將是一個GridView,其中有一些數據, ,你應該能夠導出這些數據(excel,無論)。從HTML鏈接調用C#函數
對於出口我將使用此代碼website。
當有人點擊導出鏈接彈出框將火起來是這樣的:
彈出與avgrund製成,並且「按鈕」是HTML鏈接。
$(function() {
$('#exportlaces').avgrund({
height: 80,
width: 380,
holderClass: 'container',
showClose: true,
showCloseText: 'x',
closeByEscape: true,
onBlurContainer: '#main-wrapper',
template: '<div id="exportpopuptop"></div>' +
'<div id="exportpopup">' +
'<ul>' +
'<li><a href="#">Excel</a></li>' +
'<li><a href="#">HTML</a></li>' +
'</ul>' +
'</div>'
});
});
我現在需要啓動一些C#代碼和HTML鏈接進行導出。但是如何?
我想是這樣的:
<a runat="server" OnServerClick="myFunction_Click">Excel</a>
但是,這並不工作,因爲我是表單標籤之外。 只有一個窗體標籤被允許runat =「server」。
我也嘗試將ASP.NET按鈕添加到彈出窗口,但是這也不起作用。
有沒有辦法啓動一個JavaScript函數,它將啓動C#?
感謝您的幫助。現在
編輯
的代碼看起來像這樣
$(function() {
$('#exportlaces').avgrund({
height: 80,
width: 380,
holderClass: 'container',
showClose: true,
showCloseText: 'x',
closeByEscape: true,
onBlurContainer: '#main-wrapper',
template: '<div id="exportpopuptop"></div>' +
'<div id="exportpopup">' +
'<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"> Excel</asp:LinkButton>' +
'</div>'
}).appendTo("#form1");
});
而且這樣後面的C#代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LACE
{
public partial class Default : System.Web.UI.Page
{
protected void LinkButton1_Click(object sender, EventArgs e)
{
// Your server side code goes here...
}
}
}
我也得到了以下錯誤消息:
編譯器錯誤消息:CS1061:「ASP.default_aspx」不包含關於「LinkButton1_Click」和沒有擴展方法 「LinkButton1_Click」接受 類型「ASP.default_aspx」的第一個參數的定義可以找到(是否缺少?使用指令 集引用一)
按鈕「有沒有辦法解僱啓動一個JavaScript函數,它將啓動C#?「不,不像你想象的那樣,你不能在用戶的PC上通過Web瀏覽器的鏈接執行C#函數,C#函數必須是ASP.NET站點的一部分,在服務器上運行,如果你的函數返回一個結果給用戶,它必須通過HTTP響應來完成,也就是說,有兩種方法可以完成這個操作:(在下一個註釋中繼續) – mbeckish
1)讓按鈕提交你的整個表單創建HTTP請求,並且整個頁面將刷新,或者2)讓按鈕執行AJAX HTTP請求,然後讓JavaScript接受響應並更新頁面的一小部分而不刷新其餘部分。如下面的答案覆蓋了這兩種方法 – mbeckish
但是他不需要這樣做如果他彈出一個服務器端鏈接並彈出到