是否有ASP按钮不会提交表单数据。
每当我点击一个asp按钮它发布表单数据,我想改变这种行为,所以我可以发布一些其他表单数据,我将以编程方式创建它。
非常感谢任何帮助将不胜感激
您需要使用JavaScript并拦截onclick
事件,然后在那里进行Ajax调用。
在事件处理程序中,返回false
并且不会提交您的表单。像这样的东西:
<script>
function on_s() {
/// do some AJAX with JQuery or any other library
$.ajax({ url: "your_asp_entry.aspx" });
// you can add some processing to the AJAX call
return false;
}
</script>
<body>
<form runat="server">
<asp:Button id="b1" Text="Submit" runat="server" OnClick="return on_s();" />
</form>
</body>
在your_asp_entry.aspx
上,您可以执行调用C#函数/方法所需的任何操作。
更新:在OP说出他/她需要调用C#函数的评论后改变了答案。
使用属性UseSubmitBehaviour =“false”解决了我的问题
<asp:Button ID="button1" runat="server" UseSubmitBehavior="false" Text="just a button" />
此属性自.Net v2.0起可用,以获取更多信息:Button.UseSubmitBehavior Property
将onclientclick="Javascript:return false;"
添加到asp按钮
这里的根本问题是,除非另有说明,否则<button>
将默认提交其父表格(例如type="button"
)。
这是一个related answer,讨论添加UseSubmitBehavior="false"
ASP属性以在按钮上设置正确的类型属性。
这里是来自MDN的documentation,它解释了没有指定时的默认type="submit"
类型。
这是一个没有表单提交的示例按钮html按钮,只需使用带有runat =“server”和type =“button”的html按钮。
<input id="butDelete" runat="server" class="btn btn-danger" type="button"
value="Delete" OnServerClick="butDelete_ServerClick" onclick="if
(!confirm('Sure?')) return;"/>