首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asp LinkButton _doPostBack

asp LinkButton _doPostBack
EN

Stack Overflow用户
提问于 2015-09-22 07:53:41
回答 1查看 397关注 0票数 0

我有以下菜单:

代码语言:javascript
复制
<header class="logged-in clearfix" runat="server" id="hdrLoggedIn" visible="false">
    <div class="container">
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li runat="server" ID="liLoggedIn"><asp:LinkButton runat="server" ID="btnLoggedIn" OnClick="btnLoggedIn_Click" CausesValidation="false" /></li>
                <li runat="server" ID="liChangePwd"><asp:LinkButton runat="server" ID="btnChangePwd" Text="Change Password" OnClick="btnChangePwd_Click" CausesValidation="false" /></li>
                <li runat="server" ID="liIdUpload"><asp:LinkButton runat="server" ID="btnIdUpload" Text="ID Upload" OnClick="lnkIdUpload_Click" CausesValidation="false" /></li>    
                <li runat="server" ID="liAdmin"><asp:LinkButton runat="server" ID="btnAdmin" Text="Admin" OnClick="btnAdmin_Click" CausesValidation="false" /></li>     
                <li runat="server" ID="liLogout"><asp:LinkButton runat="server" ID="btnLogout" Text="Logout" OnClick="btnLogout_Click" CausesValidation="false" /></li>
                <li runat="server" ID="liUnsub"><a href="unsubscribe.aspx">Unsubscribe User</a></li>
                <li runat="server" ID="liPerfMon"><a href="adminmonitor.aspx">Performance Monitor</a></li>
            </ul>
        </div>
    </div>
</header>

在开发工具中这样做:

这使我相信asp.net正在添加_doPostBack函数(除非我遗漏了一些东西,因为我没有创建这个应用程序)。

这是母版页中声明的全局标题菜单。

我的问题是,除了一个特定的页面之外,菜单在所有页面上都能正常工作。

我尝试过向Response.Write方法中添加一个onClick,但是这不会被触发,这使我相信onClick不会被触发。

如果没有被解雇,似乎最明显的可能性是_doPostBack以某种方式失败,并阻止了onClick方法的触发?

如果是这种情况,或者对任何人来说都是明智的,为什么会发生这种情况,我能做些什么来解决这个问题。

可能是页面中的某个东西不起作用,还是与_doPostBack冲突?还是别的什么?

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-22 08:52:46

分配OnClick属性时,可以为目标控件的Click事件分配事件处理程序。因此,在您的示例中,我假设您已经在后面的代码中实现了服务器方法btnChangePwd_Click。要触发此方法,必须使用POST方法将呈现的页面发送到服务器--您的页面上有表单。由于asp:LinkButton在最终的HTML中呈现为a元素,而且该元素不会触发表单的发布,因此ASP.NET呈现特殊的帮助方法__doPostBack,它是一个简单的javascript函数,它使用其输入参数(输入参数是触发回发的元素的id )将该参数设置为表单中隐藏字段的值,然后它发送表单。在服务器端,根据输入参数中提供的值,.NET知道应该调用哪个服务器函数。

因此,如果您的菜单不只是在一个特定的页面上工作,那么检查页面上是否有一些javascript错误,或者一些不匹配的html代码,这会破坏所有这些逻辑。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32711360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档