如何将参数动态传递给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"未定义
当前,您正在将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+");");
}
}
现在运行良好。