尝试在超链接点击事件上添加 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]);
}
最佳答案
客户端脚本无法访问服务器端列表。我不知道 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]);
}
关于javascript - 将 javascript 添加到超链接控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27926107/