将 JavaScript 添加到超链接控件

本文关键字:超链接 控件 添加 JavaScript | 更新日期: 2023-09-27 18:37:19

尝试在超链接单击事件上添加Javascript。在这里,我得到了超链接的名称,但是当我尝试单击超链接时没有任何反应。

tblCell = new HtmlTableCell();
List<string> liEmailIdsForCC = new List<string>();
if(some condition)
{
liEmailIdsForCC .add("someitem");
}
HyperLink hpOwnerName = new HyperLink();
hpOwnerName.Text += string.Format("({0})  ", "FullName");
string args = string.Format("{0},{1}"
                           , this
                           , liEmailIdsForCC                           
                           );
var onClick = String.Format("javascript:OnNameClick({0});return false;", args);
hpOwnerName.Attributes.Add("onclick", onClick);
tblCell.Controls.Add(hpOwnerName);

现在,在这个javascript中,我只是试图提醒列表中的第一项

function OnNameClick(sender, list) {
    alert(li[0]);
}

将 JavaScript 添加到超链接控件

客户端脚本将无法访问服务器端列表。我不知道liEmailIdsForCC.ToString会返回什么,但我不认为它不会是JavaScript可以使用的东西。如果你想访问字符串列表,我会把它转换为JavaScript数组。如下所示。虽然你可能应该逃离字符串。

tblCell = new HtmlTableCell();
List<string> liEmailIdsForCC = new List<string>();
if(some condition)
{
    liEmailIdsForCC.add("someitem");
}
HyperLink hpOwnerName = new HyperLink();
hpOwnerName.Text += string.Format("(FullName)  ", "FullName");
string listJSArray = string.Format("['{0}']", string.Join("', '", liEmailIdsForCC.ToArray());
var onClick = string.Format("OnNameClick(this, {0}); return false;", listJSArray);
hpOwnerName.Attributes.Add("onclick", onClick);
tblCell.Controls.Add(hpOwnerName);
// javascript code...
function OnNameClick(source, list) {
    alert(list[0]);
}