jQuery span按钮显示“未定义Button1_Click”

本文关键字:未定义 Button1 Click span 按钮 显示 jQuery | 更新日期: 2023-09-27 18:24:16

using Visual.Web.Developer.2010.Express;
using SQL.Server.Management.Studios.R2.Express;

我正在尝试做的是在单击按钮时获取一个按钮来运行一些 C#。听起来很简单,对吧?..我被困在这一部分。

当用户在 HTML 输入中按键时,我有一个跨度(Jquery UI 按钮(。一旦他们单击跨度,它就会保存用户输入的内容并将其发送到数据库......嗯,还没有。我正在构建这个,但我被困在这个部分。

一个人会在 span 标签中附加按钮点击通过属性,对吗?

<span class="ui-state-default ui-corner-all ui-icon-disk ui-icon saveButton" title="Save" style="float:left" onclick="Button1_Click"></span>



C#

protected void Button1_Click(object sender, EventArgs e)
{
    Console.WriteLine("Hello World");
}



看起来很简单,对吧?当我在调试中运行它时,Firebug 显示"未定义Button1_Click">
.
.
.
请在这里给我一些见解!

我的 HTML/Javascript 代码

<script type="text/javascript">
    $(document).ready(function () {
        $('.hexen').after('<span class="ui-state-default ui-corner-all ui-icon-disk ui-icon saveButton" title="Save" style="float:left" onclick="Button1_Click"></span>')// ui icon
    .keypress(function () {
        $(this).next('.saveButton').show();
    }); //adds ui icon
        $('.ui-state-default').hover(
    function () {
        $(this).addClass('ui-state-hover');
    }, function () {
        $(this).removeClass('ui-state-hover');
    }); //ui icon hover
        $('.saveButton').click(function () {
            var id = $(this).prev().attr('id'); //used in the "data" attribute of the ajax call
            var value = $(this).prev().val(); //used in the "data" attribute of the ajax call
            $.ajax({
                type: "POST",
                url: "Default.aspx",
                data: "{Id: " + id + ", Value: " + value + "}",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    console.log(data);
                }
            });
            $(this).hide();
        }); //runs ajax call and removes ui-icon after .saveButton is clicked
    }); //end .ready
</script> 
<input type="text" class="hexen" id="investigate1"/><br />
<input type="text" class="hexen" id="investigate2"/><br />
<input type="text" class="hexen" id="investigate3"/><br />
<input type="text" class="hexen" id="investigate4"/><br />
<input type="text" class="hexen" id="investigate5"/>



提前感谢!

jQuery span按钮显示“未定义Button1_Click”

Button1_Click是一个服务器端按钮单击处理程序,您无法使用 onclick 属性从客户端调用它。

onclick将始终在客户端 JavaScript 代码上查找处理程序或方法。

您必须使用Asp.Net按钮控件,该控件将在页面上呈现必要的方法以执行回发到服务器。

单击Asp.Net按钮后,它将当前页面提交到服务器,其中包含必要的详细信息 asp.net 框架,以便它将执行所需的按钮单击处理程序。

例如,您可以使用这样的LinkButton控件,并指定OnClick属性以Button1_ClickOnClientClick属性以调用任何客户端 javascript 方法。

<asp:LinkButton Text="Click me!" 
      OnClick="Button1_Click" runat="server" 
      OnClientClick="clientSideJavaScriptFunction()" />

从外观上看,您不需要跨度的"onclick"处理程序,因为无论如何您都在 javascript 中绑定到它:

$('.saveButton').click(....);

此外,您在空间上获得的onclick处理程序引用 C# 事件的服务器端处理程序,而不是 JavaScript 事件的客户端处理程序。 onclick的值必须是 javascript 中客户端代码可用的函数。 如果你想通过单击按钮将数据发布到服务器,那么你需要在javascript中执行AJAX请求(就像你一样(。

最后,您尝试绑定到 javascript 中.saveButton的事件处理程序将无法工作,因为您尝试在文档完成加载之前(可能(绑定它。 在 .hexen 上调用 after 后,将事件绑定移动到 document.ready 块中。

我不确定它在 C# 中是如何工作的,但我认为您需要在 ajax 调用的 URL 中引用该函数。

url: "Default.aspx/Button1_Click",

Button1_Click可能必须是一个公共职能才能发挥作用。

编辑:查看此页面的"使用jQuery调用页面方法"部分:http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/