gpt4 book ai didi

javascript - Asp.net 使用 JavaScript 调用隐藏代码

转载 作者:行者123 更新时间:2023-11-28 19:04:10 25 4
gpt4 key购买 nike

因为我没有找到任何对我有帮助的解决方案,所以我想我问了。我需要一个 JavaScript 函数,在我的代码隐藏中调用一个方法,因为我对此很陌生,所以我不明白我做错了什么。在我的母版页 (Site.Master) 上,我启用了 PageMethods:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />

在我的页面内容中我放置了脚本:

        function reply_click(clicked_id) {
alert(clicked_id);
PageMethods.javascriptTest(clicked_id);

现在我的方法在代码隐藏中:

    [WebMethod]
public void javascriptTest(int buttonID)
{

Test2.Text += buttonID + "***";

// Use the ID for DB access

}

稍后,当我必须在数据库中执行操作时,我需要该 ID,但我总是收到 PageMethods 未定义错误,而且我不知道为什么:/

编辑:解决方案确实是使 WebMethod 静态,我只是做了一个解决方法,这样我就可以使用数据库访问所需的所有详细信息

JavaScript:

    function reply_click(clicked_id, clicked_name) {
// Schulungsdaten holen
var grid = document.getElementById("<%= SignGridView.ClientID %>");
var row = grid.rows[0];
var appointmentData = row.cells[clicked_id].innerText;
// Userdaten holen
var userID = document.getElementById("<%= UserData.ClientID %>").innerText;
PageMethods.javaScriptUserSignIn(appointmentData, userID, clicked_name, OnSucceeded, OnFailed);
location.reload();
}

function OnSucceeded(response) {
alert(response);
}

function OnFailed(error) {
alert(error);
}

隐藏代码:

    [WebMethod]
public static string javaScriptUserSignIn(string appointmentData, string userID, string status)
{
string result = "";
SignIn sign = new SignIn();
result = sign.SignToTraining(appointmentData, userID, status);
return result;
}

最佳答案

您的 javascriptTest 方法需要是静态的

试试这个:

[System.Web.Services.WebMethod]
public static void javascriptTest(int buttonID)
{
Test2.Text += buttonID + "***";
// Use the ID for DB access
}

关于javascript - Asp.net 使用 JavaScript 调用隐藏代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32003675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com