如何动态地将参数传递给javascript

时间:2014-04-24 07:00:08

标签: c# jquery asp.net checkbox parameters

我的aspx页面中有一个转发器控件,在该页面中我已经放置了复选框。当用户选中此框时,我想重定向到页面。我也编写了一个javaScript来执行此操作,如下所示:

JS:

function update(eid) {
        window.location("Events.aspx?eid="+eid);
    }

以下是代码背后的方法:

protected void rptEventReminder_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        CheckBox cbx = e.Item.FindControl("chkComplete") as CheckBox;
        Label lbl = e.Item.FindControl("lblEid") as Label;

        if (cbx != null && lbl !=null)
        {
            Int64 eid = Convert.ToInt64(lbl.Text);
            cbx.Attributes.Add("onclick", "update(eid);");
        }
    }

我作为参数传递的eid是数据库中的唯一。

我得到的javaScript错误是:

  

JavaScript运行时错误:'eid'未定义

2 个答案:

答案 0 :(得分:3)

目前,您正在将eid作为硬编码文本传递给onclick处理程序,将其视为JavaScript变量,因此您收到错误

  

JavaScript运行时错误:'eid'未定义

现在,在C#中,代码eid是一个变量,因此您需要将其作为

传递
cbx.Attributes.Add("onclick", "update(" + eid +");");

答案 1 :(得分:0)

我找到了解决问题的方法。我在调用javaScript的地方后面的代码做了一点改动,如下所示:

protected void rptEventReminder_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    CheckBox cbx = e.Item.FindControl("chkComplete") as CheckBox;
    Label lbl = e.Item.FindControl("lblEid") as Label;

    if (cbx != null && lbl !=null)
    {
        Int64 eid = Convert.ToInt64(lbl.Text);
        cbx.Attributes.Add("onclick", "update("+eid+");");
    }
}

现在工作正常。