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"/>
提前感谢!
Button1_Click
是一个服务器端按钮单击处理程序,您无法使用 onclick
属性从客户端调用它。
onclick
将始终在客户端 JavaScript 代码上查找处理程序或方法。
您必须使用Asp.Net
按钮控件,该控件将在页面上呈现必要的方法以执行回发到服务器。
单击Asp.Net
按钮后,它将当前页面提交到服务器,其中包含必要的详细信息 asp.net 框架,以便它将执行所需的按钮单击处理程序。
例如,您可以使用这样的LinkButton
控件,并指定OnClick
属性以Button1_Click
和OnClientClick
属性以调用任何客户端 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/