我正在生成一个无序列表,其中包含来自我的代码隐藏的超链接。当我在代码隐藏中生成代码时,它看起来很好,但它在页面上呈现出奇怪的效果。
我的代码如下所示,从数据库中获取数据以填充UL:
output.AppendFormat("<li class=\"depth-{0}\"><a href='#' OnClientClick='openNewWin('{1}')><span>{2}</span></a>",currentDepth,row["Href"], row["Name"]);
下面是代码中生成的UL外观的示例:
<ul><li class="depth-1"><a href='#' OnClientClick='openNewWin('AddressBook.aspx')><span>Address Book</span></a>}
在HTML中它出现如下:
<a href="#" onClientClick="openNewWin(" addressbook.aspx')="">
这都调用了这样的JS函数:
function openNewWin(url) {
var x = window.open(url, 'mynewwin', 'width=600,height=600,toolbar=1,directories=no,location=no,menubar=no,left=0,top=0');
x.focus();
}
JS功能正常。
有谁知道发生了什么事?
答案 0 :(得分:1)
您的生成线需要一些修复:您正在混合'
和"
,您有一个未公开的引用,并且您将<li>
标记保持打开状态。
原件:
output.AppendFormat("<li class=\"depth-{0}\"><a href='#' OnClientClick='openNewWin('{1}')><span>{2}</span></a>",currentDepth,row["Href"], row["Name"]);
修正:
//split to focus on the string
var frmt = "<li class=\"depth-{0}\"><a href=\"#\" OnClientClick=\"openNewWin('{1}')\"><span>{2}</span></a></li>";
output.AppendFormat(frmt, currentDepth, row["Href"], row["Name"]);
答案 1 :(得分:0)
你的html应该像这样呈现
<ul><li class="depth-1"><a href='#' onclick="openNewWin('AddressBook.aspx')"><span>Address Book</span></a></li></ul>
<a href="#" onclick="openNewWin('AddressBook.aspx)">test</a>
使用onclick而不是onclientclick。