超链接或按钮不会在转发器项模板内触发



我有一个中继器,在项目模板中我有一个按钮和一个锚点。

<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 属性。

相关内容

  • 没有找到相关文章

最新更新