gpt4 book ai didi

c# - Javascript 函数不会从代码隐藏中调用

转载 作者:太空宇宙 更新时间:2023-11-03 13:52:25 25 4
gpt4 key购买 nike

我在带有参数的 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();

然后在 GridViewRowDataBound 事件中写入构建器。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com