请教一个window.onload的问题

jcins 2008-07-07 12:19:10
A.aspx:
<script language="javascript" type="text/javascript">
function Select_img(imgid,str){
if (document.getElementById(str).value!=""){
document.getElementById(imgid).innerHTML="<img src='/upload"+document.getElementById(str).value+"' width='280' height='160' >";
}
else{document.getElementById(imgid).innerHTML="";}
}

function Select_img_load(){
//Select_img('pic_sfza','<%=add_pic_shenfenzhenga.ClientID %>');
//Select_img('pic_sfzb','<%=add_pic_shenfenzhengb.ClientID %>');
}
</script>
身份证图片:<br /><span id="pic_sfza" /><br /><br /><span id="pic_sfzb" />
<asp:TextBox ID="add_pic_shenfenzhenga" runat="server" Width="120px"></asp:TextBox>
<asp:TextBox ID="add_pic_shenfenzhengb" runat="server" Width="120px"></asp:TextBox>
<%
add_pic_shenfenzhenga.Attributes["onpropertychange"] = "Select_img('pic_sfza','" + add_pic_shenfenzhenga.ClientID + "')";
add_pic_shenfenzhengb.Attributes["onpropertychange"] = "Select_img('pic_sfzb','" + add_pic_shenfenzhengb.ClientID + "')";
%>
--------------------------
A.aspx.cs:
protected void Table_kehu_RowEditing(object sender, GridViewEditEventArgs e)
{
ClientScript.RegisterClientScriptBlock(this.GetType(), "", "window.onload=function(){Select_img('pic_sfza','" + add_pic_shenfenzhenga.ClientID + "');Select_img('pic_sfzb','" + add_pic_shenfenzhengb.ClientID + "');}", true);
}

---------------------------
麻烦大家看一下.页面打开的时候想实现自动执行Select_img('pic_sfza','" + add_pic_shenfenzhenga.ClientID + "');Select_img('pic_sfzb','" + add_pic_shenfenzhengb.ClientID + "');这两句,但这样执行之后只执行了第一句,第二句总是提示错误,document.getElementById为空或不是对象.不知道什么原因.麻烦大家帮帮忙!!
...全文
160 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jcins 2008-07-07
  • 打赏
  • 举报
回复
我一直发呢.总是说我发贴太快!!本来还想发完就去给你留言呢!!呵呵!!
快乐乔巴 2008-07-07
  • 打赏
  • 举报
回复
还好比你快2秒-_-!
jcins 2008-07-07
  • 打赏
  • 举报
回复
呵呵!我也是刚刚才注意到这个.
一直都在调试呢吧!!谢谢你啊!!
快乐乔巴 2008-07-07
  • 打赏
  • 举报
回复
找到就好了,DHTML的格式是最标准的 呵呵
jcins 2008-07-07
  • 打赏
  • 举报
回复
毛病找到了!!因为<span id="pic_sfza" />把它改成<span id="pic_sfza"></span>就行了...看来这简写还真不是什么地方都可以用的!!
快乐乔巴 2008-07-07
  • 打赏
  • 举报
回复
恩,是是,span那一段忘记拷贝了。。。
这个问题理由我也说不上来,我反复调试了下
最后把<br /> <span id="pic_sfza" /> <br /> <br /> <span id="pic_sfzb" /> 这段改了下
<span id="pic_sfza"></sapn> <span id="pic_sfzb"></span>
改成了标准格式,我的就能显示出2个图了。
理由嘛。。也许写符合DHTML格式的最好。。 也许。。理由不太清楚~~
jcins 2008-07-07
  • 打赏
  • 举报
回复
Select_img的参数起的名字是原来的,还没改呢.不能从字面的意思看!!
jcins 2008-07-07
  • 打赏
  • 举报
回复
找的不是img啊.就是span的pic_sfza啊.然后在里面添加的代码里不是<img ...这个吗!
jcins 2008-07-07
  • 打赏
  • 举报
回复
如果不家window.onload这个,在文本框里输入之后相应位置都有作用.如果文本框里为空的时候相应位置就什么都没有.这些都正常.
就是在window.onload这里使用就不行,第一个图片能显示出来,第二个就不行.把Select_img('pic_sfza','" + add_pic_shenfenzhenga.ClientID + "')加在页面最底下也不行.还是第一个能显示第二个不行.但实际上得到的值都是正确的.我用alert也试过了.得到的ID肯定都没错.但就是说找不到...
怪事儿了...
快乐乔巴 2008-07-07
  • 打赏
  • 举报
回复
<span id="pic_sfza" />你是用的lable控件吧!...这个找不到的阿。。
快乐乔巴 2008-07-07
  • 打赏
  • 举报
回复
知道了,你的img控件在哪啊,pic_sfza控件名自己写的阿。。。
画面都没这控件,怎么找啊!!
快乐乔巴 2008-07-07
  • 打赏
  • 举报
回复
呵呵,没仔细看。。。
我帮你调试了下,不是第2句的原因,你fSelect_img方法中本身就有问题。
问题是在else{document.getElementById(imgid).innerHTML="";}这句中
你不妨可以将这句话注释掉,2个调用这方法的都可以取到值。自己加个alert调试下嘛。。。

else{document.getElementById(imgid).innerHTML="";}
这句话现在貌似没看出来哪错。。 带个老花镜再看看!!
jcins 2008-07-07
  • 打赏
  • 举报
回复
那为什么第一个就能执行呢?
快乐乔巴 2008-07-07
  • 打赏
  • 举报
回复
应该是你javascript执行的时机比控件生成要早,当然就找不到了。
你可以把javascript代码写在html后面,就可以了!!

62,076

社区成员

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

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

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

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