我在我的SharePoint站点上有一个aspx页面,其中我已经包含了标签。但奇怪的是,页面上的每个按钮在被点击时都会重新加载页面。即使没有属性(如id、class等)或功能的按钮也会在被点击时重新加载页面。我该如何解决这个问题?我甚至无法在调试器中看到发生了什么,因为我没有调用任何重新加载函数,所以我不知道在哪里放置断点。
非常感谢您的帮助,我真的很感激。
非常感谢您的帮助,我真的很感激。
这里的问题出在 <button> 标签上。它的默认行为是作为提交按钮,除非另有声明并会导致重新加载。
为了保留 <button> 标签,请将 type='button' 添加到按钮元素中。我认为这可以防止重新加载。
或者您可以使用老式的带有 type='button' 的 <input> 标签。这也可以防止重新加载。
或者其他带有 onclick 事件的 html 元素也可以起作用。
首先搜索名为doPostBack的函数,并在入口点上设置断点,然后单击按钮。如果您触发了此断点,则可能意味着自动提交已打开,用于生成按钮的控件。但是,如果您触发了该断点,则应该能够查看堆栈跟踪以确定如何到达那里。
如果这样做不起作用,请使用浏览器中的F12工具,从HTML部分开始搜索(Ctrl-F)单词“click”。然后转到脚本选项卡,并对每个JavaScript文件执行相同操作。如果所有按钮都表现出相同的行为,则很可能已注册单击事件。可能使用jQuery进行注册,例如$('button'),以便匹配页面上的所有按钮并注册单击处理程序。
如果仍然找不到问题所在,并且您可以访问http://startermasterpages.codeplex.com/中的一个主页,请下载其中一个主页,并暂时将其替换为您的主页。首先在页面上拍摄正在加载的脚本的屏幕截图。然后逐个添加到起始主页中,直到出现不需要的行为。然后在该脚本的每个函数入口点上设置断点,然后单击按钮并查看您所在的位置。
runat="server"
属性吗?或者它们是<asp:Button>
按钮吗? - naivists