我有一个中继器,在项目模板中我有一个按钮和一个锚点。
<asp:Repeater runat="server" ID="rptCategoryList" OnItemDataBound="rptCategoryList_ItemDataBound">
<ItemTemplate>
....
<div style="margin-left: 81.6%;">
<span runat="server" id="spnRegister" clientidmode="static" class="register pull-right">
<button class="btn btn-info btn-lg" style="float: ; margin-right: 40px; margin-top: -150px; background-color: #3697EA">
<a href="register.aspx" style="color: white;" target="_self">Register</a>
</button>
</span>
</div>
....
</ItemTemplate>
单击此按钮时,它会重新加载同一页面,而不是注册.aspx。我使用了"查看页面源代码"并且 href 设置正确。
我删除了锚点并在按钮中添加了一个类并使用了jQuery:
<button class="btn btn-info btn-lg registerSilver" style="float: ; margin-right: 40px; margin-top: -150px; background-color: #3697EA">
Register
</button>
$(function () {
$('.registerSilver').click(function () {debugger
window.location = 'register.aspx';
});
});
仍然无法正常工作,不断重新加载同一页面。
我什至尝试将runat="server"添加到超链接中,并在中继器的itemdatabound中设置其href,但没有运气。
我在这里错过了什么?
<button>
标签触发器表单提交的默认行为(即<form runat="server">
在 ASPX 页面中(,这可能会导致回发到同一页面,而不是重定向到锚链接中指定的页面 URL。尝试显式设置type="button"
属性,如下例所示:
<button type="button" class="btn btn-info btn-lg" style="float: ; margin-right: 40px; margin-top: -150px; background-color: #3697EA">
<a href="register.aspx" style="color: white;" target="_self">Register</a>
</button>
或者对 jQuery 中的click
事件处理程序使用preventDefault()
函数来防止该按钮的默认提交操作:
$('.registerSilver').click(function (e) {
e.preventDefault();
debugger;
window.location = 'register.aspx';
});
如果你只是想重定向,那么为什么你使用按钮而不是那个,你可以只将按钮 css 类传递给锚点标签并使其看起来像按钮一样
<asp:Repeater runat="server" ID="rptCategoryList" OnItemDataBound="rptCategoryList_ItemDataBound">
<ItemTemplate>
....
<div style="margin-left: 81.6%;">
<span runat="server" id="spnRegister" clientidmode="static" class="register pull-right">
<a href="register.aspx" class="btn btn-info btn-lg" style="color: white; float: ; margin-right: 40px; margin-top: -150px; background-color: #3697EA" target="_self">Register</a>
</span>
</div>
....
</ItemTemplate>
这将起作用
您也可以将 html 按钮替换为 asp 按钮:
<asp:Button runat="server" CssClass="btn btn-info btn-lg registerSilver" PostBackUrl="register.aspx" Text="Register"/>
这样,您可以设置 PostBackUrl 属性。