我的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'未定义
答案 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+");");
}
}
现在工作正常。