string script = "<script language='javascript'> " +
" parent.parent.document.getElementById('txtValue').value = '" + TextBox1.Text + "' ;" +
" parent.parent.GB_hide();</script> ";string script = "<script language='javascript'> " +
" parent.parent.document.getElementById('<%= txtValue.ClientID %>').value = '" + TextBox1.Text + "' ;" +
" parent.parent.GB_hide();</script> "; ClientScript.RegisterStartupScript(
typeof(Page),
"",
script);返回数值的两种写法为什么只有上面那个能执行成功呢,下面的一执行就提示:
parent.parent.document.getElementById(...) 为空或者不是对象
" parent.parent.document.getElementById('txtValue').value = '" + TextBox1.Text + "' ;" +
" parent.parent.GB_hide();</script> ";string script = "<script language='javascript'> " +
" parent.parent.document.getElementById('<%= txtValue.ClientID %>').value = '" + TextBox1.Text + "' ;" +
" parent.parent.GB_hide();</script> "; ClientScript.RegisterStartupScript(
typeof(Page),
"",
script);返回数值的两种写法为什么只有上面那个能执行成功呢,下面的一执行就提示:
parent.parent.document.getElementById(...) 为空或者不是对象
解决方案 »
- 未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“xxxx.resources”正确嵌入或链接到程序集“xxx”
- 关于UpdatePanel与FileUpload的问题
- 在使用owc生成图表时.如何才能图表生成时直接显示在浏览器中,而不用先保存在硬盘中,在显示在浏览中(vb.net)??????????????????????????
- datagrid中update取不了列中数值
- 关于一个使用DataList问题
- 实在没分了,但不要不进来,2.0框架中用什么属性用户可以输入<sfs>这样的危险字符
- 征求解决页面刷新问题
- 一个页面通过了表单权限验证才能打开,但是登陆后,怎么防止别人盗连?
- 广州共同创业(asp.net)
- |M| MD CSDN的程序员 没有办法不骂上一句 那个搜索的怎么搜不到我的贴啊 关键字 |M| 分贴也不知道还有多少可用分 只能给个零分贴了
- 打印asp.net页面
- 关于图片显示的问题
--- 基于VS 2008(兼容VS 2005)C#http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx下面出自书中原文:
Asp.net技术可以说是技术的一次伟大变革,但也对开发人员带来一些隐患,因为它使开发人员变得“比较傻”,web服务器技术是一个比较复杂的技术,程序员天生就遇到Asp.net,从而认为开发web程序像cs架构那么简单,不但不了解客户端技术,而是由于Asp.net的易用性(为了实现易用性而把一些web技术封闭到底层)使开发人员对服务器端技术也不甚了解。我对这个是比较愤慨的,这也是我要写这本书的另一个重要原因。我发现好多开发人员对Asp.net技术的理解甚微,与我一起工作的甚至有很多年开发经验的朋友对一些Asp.net基本性的原理还不了解,也可以说终究是因为Asp.net技术的出现以及开发环境的集成性让很多开发人员变成“傻瓜式”的编程,使开发人员没有了机会去了解那些东西。拿Asp.net为例,举几个开发人员常犯的比较基础的认识错误:Ø 分不清楚控件的服务端和客户端ID页面中有个ID为TextBox1的服务端控件,很多开发人员在客户端访问该控件的DOM元素是这么访问的: var txtbox = document.getElementByID(“TextBox1”); 之后有一天,他突然发现代码出问题了,通过以上代码不能够再检索到TextBox1控件的客户端元素了。对服务端控件来说这种写法是错误的,这里的正确写法是: var txtbox = document.getElementById('<%= TextBox1.ClientID %>'); 出错原因是没有理解一个服务端控件不像客户端控件只有一个id,服务端控件有三个属性标示控件的唯一名称,这三个属性是:ID,UniqueID和ClientID。其中ID 表示我们给它命名的ID,不管在服务端还是客户端程序中不会使用这个ID; UniqueID表示控件的服务端ID, 在服务端标志控件的唯一名称; ClientID表示控件的客户端ID,在客户端标记页面中元素唯一名称。从使用角度讲, 如果继承了INamingContainer接口, 当我们为子控件设定一个ID后, 它的UniqueID和ClientID会自动加上父控件名称和分隔符作为前缀;一般来说, 在服务端分隔符默认使用 “$” 进行分隔(UniqueID), 但是到了客户端会自动将这些 “$” 转换为下划线 “_”(ClientID),即客户端ID和服务端ID名称是一样的, 只是分隔符不同。上面代码出错的原因是某天他把TextBox1控件放到了母版页容器控件中。在增加母版页之前,TextBox1控件由于没有父容器,所以它的ID,UniqueID以及ClientID都是”TextBox1”,只是恰同巧合;一旦,TextBox1放到了容器控件中,它的UniqueID和ClientID都会发生改变,要增加父容器的名称作为前缀,比如它的ClientID可能变为:“Panel1_TextBox1”,服务端UniqueID变为:“Panel1$TextBox1”。这里限于篇幅,后面章节还有详解。
" parent.parent.document.getElementById(' <%= txtValue.ClientID %>').value = '" + TextBox1.Text + "' ;" +
" parent.parent.GB_hide(); </script> "; //改成string script = " <script language='javascript'> " +
" parent.parent.document.getElementById('"+txtValue.ClientID+"').value = '" + TextBox1.Text + "' ;" +
" parent.parent.GB_hide(); </script> "; <%= txtValue.ClientID %>是在HTML中用的,而不是在后台CS代码中用的
parent.parent.document.getElementById('ctl00_ContentPlaceHolder1_txtValue').value 那么数值就能够正确
返回,但是我写下面的方式就老是出错,我也用是是ClientID 啊,为什么不能成功呢
parent.parent.document.getElementById(' <%= txtValue.ClientID %>').value
" var textboxs=parent.parent.document.getElementsByTagName('input'); "+
" for(var i=0;i<textboxs.length;i++) "+
" { "+
" if(textboxs[i].id.indexOf('txtValue')>0 && textboxs[i].type=='text') "+
" {textboxs[i].value='" + TextBox1.Text + "';parent.parent.GB_hide(); break;} "+
" } "+</script> ";