【问题标题】:How to pass parameter to javascript dynamically如何动态地将参数传递给javascript
【发布时间】:2014-04-24 16:39:19
【问题描述】:

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

【问题讨论】:

  • 试试这个:cbx.Attributes.Add("onclick", "update('"+eid+"');");

标签: c# jquery asp.net checkbox parameters


【解决方案1】:

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

JavaScript 运行时错误:“eid”未定义

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

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

【讨论】:

    【解决方案2】:

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

    现在它工作正常。

    【讨论】:

    • 你在eid之后缺少+
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2013-06-04
    • 1970-01-01
    相关资源
    最近更新 更多