如何将参数动态传递给javascript

本文关键字:javascript 动态 参数 | 更新日期: 2023-09-27 17:59:40

我在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"未定义

如何将参数动态传递给javascript

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

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

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

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

我找到了问题的解决方案。我在调用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+");");
    }
}

现在运行良好。