0

我是 JQuery Mobile 的新手,所以请原谅这个可能很简单的问题。

我有一个按钮:

<a id="btnSort" href=# data-role="button"
                runat="server" onclick="Click_btnSort">Sort</a>

和代码隐藏事件处理程序:

protected void Click_btnSort(object sender, EventArgs e)
        {
            ...
        }

我在此方法的开头有一个断点,但是当我单击按钮时它不会触发。

PS。我没有使用任何字段验证器。

有什么建议么?

4

3 回答 3

2

您的事件没有触发的原因是因为您使用了 html a 元素,该元素不会触发回发(也许当您将元素 autopostback 属性设置为 true 时会触发,不确定这是否适用于 a 元素)。

当您想在后面的代码中使用 ASP.NET 按钮单击事件(单击时执行服务器端的操作)时,您可能最好使用 ASP:Button 或 LinkBut​​ton 元素,它可以开箱即用。

当您想使用客户端单击事件(例如,使用 jQuery,在单击时执行客户端操作)时,您可能最好向元素添加一个事件侦听器,如下所示:

$(document).on('click', '#btnSort', function () {
 // client side stuff here
});

编辑:

有关使用 jQuery 的基本客户端事件绑定,请参阅此内容。如果这看起来不熟悉,请阅读 JavaScript / jQuery 基础知识,这将是值得的

http://jsfiddle.net/6mYQN/1/

于 2013-06-05T12:39:25.533 回答
1

由于<a>标签与服务器端控件无关,所以我认为这不会像那样发生。

即使在服务器上运行,您的代码仍然会寻找Click_btnSortin javascript 函数,而不是后面的代码,因此您应该在 script/javascript 标记中添加一个函数,其名称为您将在onclick事件中调用的名称。

于 2013-06-05T12:54:27.593 回答
0

虽然这是一篇旧文章,但您可以做的是创建一个

<asp:Button ID="btnServerSort" style="display:none;"  runat="server" Text="SORT" OnCommand="Click_btnServerSort" ..>  

与关联的服务器端事件。

然后修改代码如下

<a id="btnSort" href=# data-role="button" data-ajax="false" runat="server"  onserverclick="Click_btnServerSort"   >Sort</a>

我希望这有帮助。

于 2014-12-12T15:44:38.650 回答