我在带有参数的 javascript 中有一个函数,我想在 Gridview 绑定(bind)它的数据时多次调用这个函数。所以我把代码放成这样
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 绑定(bind)的每次迭代中调用函数应该怎么做。
提前致谢
最佳答案
问题是,如果您需要随机性,则需要使用相同的 Random
实例,并且不能每次都创建一个新实例。你现在的做法可能每次都会产生相同的值(value)。 (另请注意,随机值与唯一值不同)
然而,为了解决这个问题,我会做一些不同的事情。
在您的类中声明一个 StringBuilder
作为字段。在绑定(bind)网格之前创建它:
sb = new StringBuilder();
gridView.DataBind();
然后在 GridView
的 RowDataBound
事件中写入构建器。
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);
或者使用唯一值作为键,例如 Guid.NewGuid().ToString()
关于c# - Javascript 函数不会从代码隐藏中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13321135/