我正在构建一个包含占位符的动态用户控件(ascx)。在占位符内,将有n个表。在每个表格中,在其中一个单元格中,我有如下链接按钮。
HyperLink lnkButton = new HyperLink(); lnkButton.ID =“lnkButton_”+ ID.ToString(); lnkButton.Text = tstText; lnkButton.NavigateUrl =“javascript:JS_Click();”;
我必须在链接按钮单击上调用JS函数(没有回发)。
在JS函数中,我必须获取调用该JS函数的控件的id。在这种情况下,它将是链接按钮。我在JS函数中编写以下代码:
var ctrl = event.srcElement.id;
但我在javaScript中遇到'Object Required'错误。
其他一些事情:这个用户控件将在default.aspx页面中加载,JS函数我在default.aspx中编写。
我不确定为什么这不起作用。我正在使用IE6 / 7,VS 2005.是否有任何其他功能或方法可用于获取srcElement.id。请帮忙。
答案 0 :(得分:3)
尝试在调用方法时传递this
lnkButton.NavigateUrl = "javascript:JS_Click(this);";
然后你可以在JS_Click事件中写这个
function JS_Click(obj)
{
alert("Now I have my object " + obj.id);
}
答案 1 :(得分:0)
另一种选择是使用jQuery并连接到链接按钮上的click
事件。
为您正在创建的CssClass
添加LinkButton
属性:
HyperLink lnkButton = new HyperLink();
lnkButton.ID = "lnkButton_" + ID.ToString();
lnkButton.Text = tstText;
lnkButton.CssClass = "linkButton";
然后在ASPX页面中编写以下JS / JQuery:
$(document).ready(function()
{
$('.linkButton', '#userControlID').click(function(e)
{
alert('You clicked linkbutton with ID ' + e.target.id);
});
});
在上面的例子中,每个链接按钮都有class =“linkButton”,它们包含在你的usercontrol中,ID =“userControlID”。