【发布时间】:2015-01-12 11:14:46
【问题描述】:
我正在使用 Sitecore,并且我有一个在所有页面中都使用的标题子布局。此布局包含一个 Logout 按钮,该按钮在单击时触发 OnClick 事件并执行 onclick 事件函数。但在少数页面中,它根本不会触发 OnClick 事件,而是重新加载页面。
下面是退出按钮的代码
<asp:button id="btnLogout" runat="server" borderstyle="None" onclick="btnLogout_Click" text="Log out" ToolTip="Log out" backcolor="Transparent" style="cursor:pointer" class="logout_new"></asp:button>
下面是事件函数的代码
protected void btnLogout_Click(object sender, EventArgs e)
{
Sitecore.Security.Authentication.AuthenticationManager.Logout();
Response.Redirect("/Login.aspx");
}
我发现注销触发 onclick 事件的页面与不触发 onclick 事件的页面之间的区别在于它们使用包含注销按钮的相同标题子布局,但它们使用不同的内容子布局。
注意:我没有将缓存应用到任何子布局。
谁能帮我解决这个问题?
【问题讨论】:
-
您的意思是子布局吗? (一个 ascx)您是否将缓存应用于子布局?
-
是的,它是一个子布局。我没有将缓存应用到子布局
-
你有绑定到按钮的 JavaScript 吗?也许在某些情况下,您在 JS 中有一个单击处理程序,它可能会返回 false,从而阻止回发。
-
@MarkUrsino 我发现问题出在无法正常工作的内容子布局中,Page_Load 函数正在向自身调用 Response.Redirect 函数并且它没有检查它是否是回发在此之前请求与否。我注意到在它工作的其他内容子布局中,它正在检查它是否不是回发。我在此之前添加了一个 if(!IsPostBack) 并开始工作。