我有一个按钮,点击后会执行此操作:
protected void Button6_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(),
"myScript", "AnotherFunction();", true);
}
我还有另一个服务器端功能:
public void Delete()
{
//Delete Code
}
点击按钮后,它将转到此javascript
功能:
现在我要做的是,在SERVER端调用Delete()
函数。这是我迄今为止尝试过的javascript函数
function (isConfirm)
{
if (isConfirm)
{
//CALL DELETE FUNCTION HERE Delete();
swal("Deleted!", "Your imaginary file has been deleted.", "success");
}
else
{
swal("Cancelled", "Your imaginary file is safe :)", "error");
}
});
如何调用该服务器端功能?有什么想法吗?
答案 0 :(得分:0)
我会在页面中添加一个ScriptManager并启用PageMethods;
和代码:
在ASPX中:
<asp:ScriptManager runat="server" EnablePageMethods="true" />
在Javascript中:
<script>
PageMethods.Delete();
</script>
在ASPX.cs中:
[System.Web.Services.WebMethod]
public static void Delete()
{
//Delete Code
}
答案 1 :(得分:0)
您可以通过两种方式实现这一目标。 JS中的Ajax / Web Service或触发按钮单击。最简单的是触发按钮点击。使用以下代码。
ASPX:
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" ClientIDMode="Static" style="display:none;"/>
C#:
protected void Button1_Click(object sender, EventArgs e)
{
Delete();
}
JS:
document.getElementById('Button1').click();
// jquery
$("#Button1").click();
但如果您不想回发页面,请使用Ajax。 在Ajax中,你需要添加一个网页说data.aspx,在data.aspx的后端类中你将添加以下c#
的Ajax。 C#
[WebMethod]
public static int DoSomething(int Id)
{
return 1;
}
现在你可以从JS中调用它:
$.ajax({
url: APP_PAGE_RELATIVE_PATH + "Data.aspx/DoSomething",
data: "{'Id':5}",
type: "POST",
cache: false,
headers: { "cache-control": "no-cache" },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Do Something
},
error: function (xhr, status, error) {
//DebugAlert("Error: " + xhr.responseText);
}
});