javascript - 将 javascript 添加到超链接控件

标签 javascript c#

尝试在超链接点击事件上添加 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/

相关文章:

c# - 如何从自动缩放图表控件中获取最大 Y 轴值

c# - 将 Excel 读取到数据表而不会丢失货币类型的精度

javascript - 当我在 Three.js 中使用加载器时,变量未定义

Javascript 的 setExpression 是我最大的问题。任何解决这个问题的方法

c# - 我可以在 Unity 中使用预处理器指令来区分调试和 Release模式吗

c# - 如何使用任何脚本判断给定的 URL 是否会重定向?

c# - 私有(private)关键字与无私有(private)关键字

javascript - 匹配这个或完全匹配那个的正则表达式

javascript - 色标的 D3 图例

javascript - 让 requirejs 与 Jasmine 一起工作