В настоящее время я разрабатываю веб-сайт ASP.NET C#. На этом сайте будет GridView с некоторыми данными в нем, , и вы должны иметь возможность экспортировать эти данные (excel, whatever).вызов функции C# из ссылки HTML
Для экспорта я буду использовать код на этом 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#?
Благодарим за помощь.
EDIT
код теперь выглядит как этот
$(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");
});
И С # код позади, как это:
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#?«Нет, не так, как вы, кажется, думаете. Вы не можете выполнять функцию C# на ПК пользователя по ссылке в веб-браузере. Функция C# должна быть частью вашего сайта ASP.NET, запускаться на сервере , и если ваша функция возвращает результат пользователю, он должен сделать это с помощью HTTP-ответа. Говоря об этом, есть два способа сделать это: (продолжение в следующем комментарии). – mbeckish
1) Введите кнопку, чтобы отправить всю форму чтобы сделать HTTP-запрос, и вся ваша страница обновится, или 2) Попросите кнопку выполнить HTTP-запрос AJAX, а затем ваш javascript примет ответ и обновит небольшую часть вашей страницы, не обновляя остальную часть. например, есть ответы ниже, которые охватывают оба метода. – mbeckish
Но тогда ему не нужно это делать. Если он вставит ссылку на серверную ссылку в всплывающем окне и получит всплывающее окно внутри тега