asp.net 调用js函数的问题

bb_chen 2012-09-19 05:47:04
.aspx文件中

 <script language="JavaScript" type="text/javascript">

function ConfirmBack(a, b) {

window.opener.document.getElementById('<%= Request["qid1"] %>').value = a;
window.opener.document.getElementById('<%= Request["qid2"] %>').value = b;

window.close();

}
</script>


我用双击Gridview行的方法可以实现功能,代码如下

protected void gvDetail_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string x = e.Row.Cells[0].Text;

e.Row.Attributes.Add("OnDblClick", "ConfirmBack('" + e.Row.Cells[0].Text + "','" + e.Row.Cells[1].Text + "')");
}
}



然后我在gridview中加入了一列checkbox,用于多选,通过按钮去调用函数

protected void btnOK_Click(object sender, EventArgs e)
{
foreach (GridViewRow GR in this.gvDetail.Rows)
{
CheckBox CB = (CheckBox)GR.FindControl("CheckBox1");
if (CB.Checked)
{
ids = ids + GR.Cells[1].Text + ","; ;
names = names + GR.Cells[2].Text + ",";
}
}
//注:以上正确的取得了值

Response.Write("<script language=javascript>ConfirmBack('" + ids + "','" + names + "')</script>");

}




用这种方法就不行,只是闪了一下就没反应。

应该是这条语句有问题
Response.Write("<script language=javascript>ConfirmBack('" + ids + "','" + names + "')</script>");
大家帮忙看看,非常感谢哈
...全文
135 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
我就是大神 2012-09-20
  • 打赏
  • 举报
回复
window.onload就是在页面加载时执行,不加这个肯定不会执行啊。在jquery里时$(function(...))
bb_chen 2012-09-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

Response.Write("<script language=javascript>window.onload=function(){ConfirmBack('" + ids + "','" + names + "');}</script>");
[/Quote]

牛人啊。这样可以实现。

但是我在网上查到都是直接调用的,不需要加window.onload=function(){ 这段,
我个人理解了下 是不是因为点了按钮后,页面会刷新一下,然后加window.onload=function(){ 就可以在刷新后执行js函数?

请指教哈
机器人 2012-09-19
  • 打赏
  • 举报
回复
Response.Write("<script language=javascript>window.onload=function(){ConfirmBack('" + ids + "','" + names + "');}</script>");
bb_chen 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

有一个先执行和后执行的问题。
不要使用 Response.Write

用RegisterStartupScript 试试
[/Quote]

试过了 也是一样的
Banianer 2012-09-19
  • 打赏
  • 举报
回复
有一个先执行和后执行的问题。
不要使用 Response.Write

用RegisterStartupScript 试试

bb_chen 2012-09-19
  • 打赏
  • 举报
回复
想了一下午了 还是没找到解决方法,唉 太痛苦。
非常感谢各位哈

62,133

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧