高手救命啊JS和后台代码结合使用出问题了~分不是问题啊

蜗牛水里爬 2007-10-24 07:03:34
由于我的IMG是动态生成的,生成的时候想利用,也必须利用自动生成的代码传出去值。可是我的传值浏览器显示JS页面代码缺少值')'
我的JS代码如下
function DoPass(ID)
{
var s=new Date();
window.showModalDialog("DataPass.aspx?id="+ID,"","dialogWidth:550px;dialogHeight:290px;status:no;help:no;scrolling=no;scrollbars=no");

location.href = location.href;
}
后台部分代码
foreach (DataRow i in dsRet.Tables[0].Rows)
{
if (!Convert.ToBoolean(i["FLAG"]))//部门还没有完成
{
sBM += i["name"].ToString() + @"<img onclick ='DoPass(" + i["ID"].ToString() + ")' src='Images/btnInfo.gif'/>";
this.Session["MessageID"] = i["ID"].ToString();
this.Session["FlagPostion"] = 1;
}
else
{
sBM += i["name"].ToString() + @"<img src='/Images/btnPass.gif' />";
}
sBM += @" ";
}
...全文
143 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
蜗牛水里爬 2007-10-25
  • 打赏
  • 举报
回复
是整个后台代码运行完了
刷新前台代码的时候刷新到自定义控件这里就错了
怎么回事啊
蜗牛水里爬 2007-10-25
  • 打赏
  • 举报
回复
TO: ojekleen
DIV不是我要的
客户比较刁钻呵呵
蜗牛水里爬 2007-10-25
  • 打赏
  • 举报
回复
谢谢大家了,我知道问题的所在了传字符和数字的方法不一样传字符串要用 //东西把字符串放中间
 foreach (DataRow i in dsRet.Tables[0].Rows)
{
if (!Convert.ToBoolean(i["FLAG"]))//部门还没有完成=id)"
{
sBM += i["name"].ToString() + @"<img onclick = 'DoPass("+"\""+i["ID"].ToString() +"\")' src='Images/btnInfo.gif'/>";
this.Session["MessageID"] = i["ID"].ToString();
this.Session["FlagPostion"] = 1;
}
else
{
sBM += i["name"].ToString() + @"<img src='/Images/btnPass.gif' />";
}
sBM += @" ";
}
ojekleen 2007-10-25
  • 打赏
  • 举报
回复
mark好东西啊,
window.showModalDialog
你可以只show出一个DIV,不用show整个页面的!
ashou706 2007-10-25
  • 打赏
  • 举报
回复
i["ID"].ToString() 是不是写错了.
你是想取数组i中的ID 项?
<img onclick = 'DoPass('" + i[ID].ToString() + "') ' src= 'Images/btnInfo.gif '/ >";
ashou706 2007-10-25
  • 打赏
  • 举报
回复
i["ID"].ToString() 是不是写错了.
你是想取数组i中的ID 项?
<img onclick = 'DoPass('" + i[ID].ToString() + "') ' src= 'Images/btnInfo.gif '/ >";
蜗牛水里爬 2007-10-25
  • 打赏
  • 举报
回复
' '单引加过了可是还是老样子
郁闷
vfan2010 2007-10-25
  • 打赏
  • 举报
回复
seedling_lq的想法和我差不多.最好把参数引起来.试一下.
litujiao 2007-10-25
  • 打赏
  • 举报
回复
试试
onclick = 'DoPass(" + i["ID"].ToString() + ") '
=>
onclick = 'DoPass(\"" + i["ID"].ToString() + "\") '
seedling_lq 2007-10-25
  • 打赏
  • 举报
回复
这个问题其实就是一些不规则数据引起的
比方说,<img onclick ="DoPass(333)" src= 'Images/btnInfo.gif'/>是正确的
但是一旦你的i["ID"].ToString()中出现空格,就会报错
如<img onclick ="DoPass(33 3)" src= 'Images/btnInfo.gif'/>
所以建议在i["ID"].ToString()外层加单引号,以免因脏数据而出错
"<img onclick =\"DoPass('"+i["ID"].ToString()+"')\" src= 'Images/btnInfo.gif'/>";

cceon 2007-10-25
  • 打赏
  • 举报
回复
vfan2010 2007-10-24
  • 打赏
  • 举报
回复
是onclick时报错还是一开始就报错了。

62,039

社区成员

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

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

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

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