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

时间:2018-10-03 23:33:53

标签: asp.net hyperlink .net-4.5 repeater

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

<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>

单击此按钮时,它将重新加载同一页面,而不是register.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”添加到超链接,并将其href设置在转发器的itemdatabound中,没有运气。

我在这里想念什么?

3 个答案:

答案 0 :(得分:0)

data = {'file_paths': ['/file/path/one', '/file/path/two'], 'file_count': 2} text_baseline = "this is the {}th file and the path is {}" with open('path','w') as f: for i in range(int(dict.get('file_count'))): f.write(text_baseline.format(i,data['file_paths'])) 标签的默认行为触发表单提交(即ASPX页面中的<button>),这很可能导致回发到同一页面,而不是重定向到锚链接中指定的页面URL。尝试像下面的示例一样显式设置<form runat="server">属性:

type="button"

或对jQuery中的<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> 事件处理程序使用preventDefault()函数,以防止该按钮的默认提交动作:

click

答案 1 :(得分:0)

如果您只想重定向,那么为什么不使用button呢,您可以通过按钮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>

这将起作用

答案 2 :(得分:0)

您还可以将html按钮替换为一个asp:

<asp:Button runat="server" CssClass="btn btn-info btn-lg registerSilver" PostBackUrl="register.aspx" Text="Register"/>

这样,您可以设置PostBackUrl属性。