我是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。我没有使用任何字段验证器。
有什么建议吗?
答案 0 :(得分:2)
你的事件是nog触发的原因是因为你使用了一个html a元素,该元素不会触发回发(当你将元素autopostback proerty设置为true时可能会这样做,不确定这是否适用于a-elements )。
如果要在代码后面使用ASP.NET按钮单击事件(在单击时执行服务器端操作),最好使用ASP:Button或LinkButton元素,它开箱即用。
如果你想使用客户端点击事件(例如使用jQuery,点击时做客户端的东西),你可能最好在元素中添加一个事件监听器,如下所示:
$(document).on('click', '#btnSort', function () {
// client side stuff here
});
编辑:
使用jQuery查看基本客户端事件绑定。如果这看起来不熟悉,请阅读JavaScript / jQuery基础知识,值得花时间
答案 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>
我希望这会有所帮助。