jQuery Mobile按钮单击事件不起作用

时间:2013-06-05 12:06:08

标签: javascript jquery asp.net events jquery-mobile

我是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。我没有使用任何字段验证器。

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

你的事件是nog触发的原因是因为你使用了一个html a元素,该元素不会触发回发(当你将元素autopostback proerty设置为true时可能会这样做,不确定这是否适用于a-elements )。

如果要在代码后面使用ASP.NET按钮单击事件(在单击时执行服务器端操作),最好使用ASP:Button或LinkBut​​ton元素,它开箱即用。

如果你想使用客户端点击事件(例如使用jQuery,点击时做客户端的东西),你可能最好在元素中添加一个事件监听器,如下所示:

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

编辑:

使用jQuery查看基本客户端事件绑定。如果这看起来不熟悉,请阅读JavaScript / jQuery基础知识,值得花时间

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

答案 1 :(得分:1)

由于<a>标记与服务器端控件无关,所以我认为不会发生这种情况。

你的代码即使在服务器上运行仍然会查找javascript函数中的Click_btnSort没有代码中的那个,所以你应该在script / javascript标签中添加一个函数,你将在{{{ 1}}事件。

答案 2 :(得分: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>

我希望这会有所帮助。