在WebForm中获取JS错误(for - event.srcElement.id)

时间:2010-08-02 16:56:12

标签: asp.net

我正在构建一个包含占位符的动态用户控件(ascx)。在占位符内,将有n个表。在每个表格中,在其中一个单元格中,我有如下链接按钮。

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。请帮忙。

2 个答案:

答案 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 =“linkBut​​ton”,它们包含在你的usercontrol中,ID =“userControlID”。