高手救命啊JS和后台代码结合使用出问题了~分不是问题啊
由于我的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 += @" ";
}
------解决方案--------------------是onclick时报错还是一开始就报错了。
------解决方案--------------------鼎
------解决方案--------------------这个问题其实就是一些不规则数据引起的
比方说,<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'/>";
------解决方案--------------------试试
onclick = 'DoPass(" + i["ID"].ToString() + ") '
=>
onclick = 'DoPass(\"" + i["ID"].ToString() + "\") '
------解决方案--------------------seedling_lq的想法和我差不多.最好把参数引起来.试一下.
------解决方案--------------------i["ID"].ToString() 是不是写错了.
你是想取数组i中的ID 项?
<img onclick = 'DoPass('" + i[ID].ToString() + "') ' src= 'Images/btnInfo.gif '/ >";
------解决方案--------------------i["ID"].ToString() 是不是写错了.
你是想取数组i中的ID 项?
<img onclick = 'DoPass('" + i[ID].ToString() + "') ' src= 'Images/btnInfo.gif '/ >";
------解决方案--------------------mark好东西啊,
window.showModalDialog
你可以只show出一个DIV,不用show整个页面的!