Javascript函数不会从代码后面调用

时间:2012-11-10 10:14:38

标签: c# javascript

我在带有参数的javascript中有函​​数,我希望在Gridview绑定其数据时多次调用此函数。所以我把代码放在这个

if (e.Row.RowType == DataControlRowType.DataRow)
{
    if (((DataRowView)e.Row.DataItem) != null)
 {
Page.ClientScript.RegisterStartupScript(this.GetType(),new Random().Next(100).ToString(), 
                        "likeStatus('"+argument+"')", true);
 }
}

每次我更改key的值,但此函数只调用一次。 所以请帮助我在Gridview绑定的每次迭代中如何调用函数。

提前致谢

1 个答案:

答案 0 :(得分:1)

问题在于,如果您需要随机性,则需要使用Random的相同实例,并且每次都无法创建新实例。您现在的方式可能每次都会生成相同的值。 (另请注意,随机值与唯一值不同)
为了解决这个问题,我会做一些不同的事情。

在您的班级中声明StringBuilder作为字段。在绑定网格之前创建它:

sb = new StringBuilder();
gridView.DataBind();

然后在RowDataBound的{​​{1}}事件中写入构建器。

GridView

最后在if (e.Row.RowType == DataControlRowType.DataRow) { if (((DataRowView)e.Row.DataItem) != null) sb.Append("likeStatus('"+argument+"');"); } 注册脚本字符串

PreRender

或者使用唯一值作为键,例如Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", sb.ToString(), true);