代码之家  ›  专栏  ›  技术社区  ›  NoBullMan

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

  •  0
  • NoBullMan  · 技术社区  · 7 年前

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

    <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设置正确。

            <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';
        });
    });
    

    仍然不工作,继续重新加载同一页。

    我错过了什么?

    3 回复  |  直到 7 年前
        1
  •  0
  •   Tetsuya Yamamoto    7 年前

    的默认行为 <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>
    

    preventDefault() 函数 click

    $('.registerSilver').click(function (e) {
        e.preventDefault();
        debugger;
        window.location = 'register.aspx';
    });
    
        2
  •  0
  •   Kevin Shah    7 年前

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

    这会有用的

        3
  •  0
  •   a.bajorinas    7 年前

    也可以将html按钮替换为asp按钮:

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

    这样可以设置PostBackUrl属性。

    推荐文章