2010-08-02 22 views
0

我正在构建一个包含占位符的动态用户控件(ascx)。在占位符内部,将会有n个表格。在每个表格的内部,我有一个链接按钮,如下所示。在WebForm中获取JS错误(for - event.srcElement.id)

HyperLink lnkBut​​ton = new HyperLink(); lnkBut​​ton.ID =“lnkBut​​ton_”+ ID.ToString(); lnkBut​​ton.Text = tstText; lnkBut​​ton.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

我的回答对您有帮助吗? – hunter 2010-08-02 17:18:28

回答

3

尝试通过this当你调用方法

lnkButton.NavigateUrl = "javascript:JS_Click(this);"; 

那么您可以在您的JS_Click事件

function JS_Click(obj) 
{ 
    alert("Now I have my object " + obj.id); 
} 
0

写这篇沿着另一种选择是使用jQuery和电线到click事件在你的链接按钮上。

添加CssClass属性的LinkButton的要创建:

HyperLink lnkButton = new HyperLink(); 
lnkButton.ID = "lnkButton_" + ID.ToString(); 
lnkButton.Text = tstText; 
lnkButton.CssClass = "linkButton"; 

然后写follwoing JS/JQuery的在你的ASPX页面:

$(document).ready(function() 
{ 
    $('.linkButton', '#userControlID').click(function(e) 
    { 
     alert('You clicked linkbutton with ID ' + e.target.id); 
    }); 
}); 

在上面的例子中,每个链接按钮has class =“linkBut​​ton”,它们包含在ID为“userControlID”的用户控件中。