0

我正在生成一个无序列表,其中包含来自我的代码隐藏的超链接。当我在代码隐藏中生成代码时,它看起来不错,但它在页面上呈现得很奇怪。

我的代码如下所示,并从数据库中获取数据以填充 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 函数工作正常。

有谁知道发生了什么?

4

2 回答 2

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"]);
于 2013-11-07T11:58:40.107 回答
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。

于 2013-11-08T07:17:39.373 回答