将gstring传递给Grails中的javascript函数

时间:2016-07-03 07:43:53

标签: javascript grails

我将gstring作为参数传递给javascript函数,如下所示:

TimeSpan totalTime = new TimeSpan();

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        TotalQuantity += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "Quantity"));
        var ts = DataBinder.Eval(e.Row.DataItem, "Time").ToString(); 
        var t = DateTime.Parse(ts).TimeOfDay;
        totalTime += t;
    }
    else if (e.Row.RowType == DataControlRowType.Footer)
    {
        e.Row.Cells[0].Text = "TotalQuantity";
        e.Row.Cells[0].Font.Bold = true;

        e.Row.Cells[1].Text = TotalQuantity.ToString();
        e.Row.Cells[1].Font.Bold = true;
    }
}

这里,值来自动态的控制器。我有javascript函数:

<div class="btn btn-small" id="helpful" onClick="helpful(${value})">Helpful</div>

但我没有得到任何回应。检查时没有错误。我们不能在javascript中传递gstring吗?请帮忙。

2 个答案:

答案 0 :(得分:1)

正如@helgew建议的那样,检查输出。另请注意,Grails&gt; 2.3将对使用GString传入的任何内容进行HTML编码,除非您已将其禁用(grails.views.default.code ='none')。您需要使用原始编解码器来避免编码。谨慎使用:

<div class="btn btn-small" id="helpful" onClick="helpful('${raw(value)}')">Helpful</div>

答案 1 :(得分:0)

生成的HTML是什么样的?我认为你有一个javascript错误,因为你没有引用你用作'有用'函数的参数的外推字符串。这应该有效:

<div class="btn btn-small" id="helpful" onClick="helpful('${value}')">Helpful</div>