在后台注册脚本里有‘<’ 到页面中却显示<
string[] top = new string[] { "决策支持", "项目管理" };
Control cont = new Control();
for (int i = 0; i < top.Length; i++)
{
HtmlGenericControl HtmlLi = new HtmlGenericControl("li");
HtmlAnchor a = new HtmlAnchor();
a.HRef = "#";
Label lab = new Label();
lab.Text = top[i].ToString();
a.Controls.Add(lab);
a.ID = "mynav" + i.ToString();
HtmlLi.Controls.Add(a);
string ul = getUrlAndName(top[i].ToString());
a.Attributes.Add("onclick", "javascript:var p = window.createPopup();p.document.body.style.backgroundColor = '#FFFF00';p.document.body.innerHTML = '"+ul+"';p.show(" + (i * 85 + 500).ToString() + ",115,200,200,document.body);getBg(" + i.ToString() + ")".ToString());
cont.Controls.Add(HtmlLi);
}
nav.Controls.Add(cont);
}
protected string getUrlAndName(string topName)
{
string UrlName = string.Empty;
//决策哈希集合
Hashtable jchx = new Hashtable();
jchx.Add("决策1", "1.html");
jchx.Add("决策2", "2.html");
//项目哈希集合
Hashtable xmhx = new Hashtable();
xmhx.Add("项目1", "1.html");
xmhx.Add("项目2", "2.html");
UrlName += "<ul>";
if (topName=="决策支持")
{
foreach (DictionaryEntry jc in jchx)
{
UrlName += "<li>" +
"<a href='" + jc.Value + "'>" +
jc.Key +
"</a>" +
"</li>";
}
}
else if (topName=="项目管理")
{
foreach (DictionaryEntry jc in xmhx)
{
UrlName += "<li>" +
"<a href='" + jc.Value + "'>" +
jc.Key +
"</a>" +
"</li>";
}
}
else
{
UrlName += "<li>没有</li>";
}
UrlName += "</ul>";
return UrlName;
}
这样写是为了跨Frame 如果不这样有没有更好的建议
--------------------编程问答-------------------- Attributes.Add("onclick", "test();");
不要写在服务器控件的属性里面 --------------------编程问答-------------------- 那怎么改呢 --------------------编程问答-------------------- Attributes.Add("onclick", "test(" + 结构体 + ");");
function test()
{
//弹出的菜单在这里生成
}
补充:.NET技术 , ASP.NET