我将鼠标悬停在我的菜单上,子菜单会展开,然后这个坏男孩就会越过屏幕。我可以在我的网站上做些什么来阻止这种情况吗?
IE6
ASPX
<%@ Page Title="" Language="C#" MasterPageFile="~/Templates/MyPage.master" AutoEventWireup="true"
CodeFile="Tasks.aspx.cs" Inherits="UI_MyPage_Tasks" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<table>
<tr valign="top">
<td>
<asp:Menu ID="menu1" runat="server" OnMenuItemClick="menu1_MenuItemClick" />
</td>
<td>
<cc:CustomUserControl ID="cuc1" runat="server" />
</td>
</tr>
</table>
aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using VAC.Data;
public partial class UI_Patient_Tasks : BasePage
{
MyDB db = new MyDB();
private MenuItem UserRole1MenuItem { get { return GetMenu(Common.Role.UserRole1); } }
private MenuItem UserRole2MenuItem { get { return GetMenu(Common.Role.UserRole2); } }
private MenuItem GetMenu(string roleName)
{
int roleID = (from r in db.Roles where r.RoleName == roleName select r.RoleID).First();
MenuItem main = new MenuItem(roleName + " Menu");
foreach (CustomObject co in (from c in db.CustomObjects where c.RoleID == roleID orderby c.SortOrder select c))
main.ChildItems.Add(new MenuItem(co.Description, co.CustomObjectID.ToString()));
return main;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
menu1.Items.Clear();
if (User.IsInRole(Common.Role.UserRole1))
menu1.Items.Add(UserRole1MenuItem);
if (User.IsInRole(Common.Role.UserRole2))
menu1.Items.Add(UserRole2MenuItem);
}
}
protected void menu1_MenuItemClick(object sender, MenuEventArgs e)
{
int id;
if (int.TryParse(e.Item.Value, out id))
{
cuc1.CustomObjectID = id;
}
}
}
</asp:Content>
答案 0 :(得分:2)
看起来您正在通过ssl(即https://
)为您的网站提供服务,但服务于某些内容,几乎肯定是菜单中的内容 - 例如http://
上的图片,因此您'重新收到“混合模式”警告。
查看菜单的标记,并在.aspx页面中查找任何http://
网址(如果您动态构建菜单,可能会查找代码隐藏),其中https://
或反之亦然。
答案 1 :(得分:1)
确保通过https引用所有图像或外部资源。
答案 2 :(得分:0)
Hooray我找到了解决办法。
问题出在PopOut_Show函数中。 MS做了一些奇怪的儿童框架的事情。 我删除了它,一切正常!