JS脚本应用中遇到的一点问题

     最近需要实现一个简单的功能,即要让GridView模板列显示从下拉列表中获取的值,我选择在客户端编写脚本实现。但遇到了一些问题。经过努力问题最终得以解决,于是作下记录,以备用。

先贴出代码吧!

【前台代码】

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

      function sel()

      {

           var select = document.getElementById("ddlDmSize_12");

           var select_text = select.options[select.selectedIndex].innerText;

           var str = select_text;

           var newstr = str.split("|");

//           document.getElementById("GridView1_ctl12_txt_Lm").innerText = newstr[0];

//           document.getElementById("GridView1_ctl12_txt_Dm").innerText = newstr[1];

//           document.getElementById("GridView1_ctl12_txt_Gg").innerText = newstr[2];

//           document.getElementById("GridView1_ctl12_txt_Dw").innerText = newstr[3];

           document.getElementById("GridView1ctl12txt_Dm").innerText = newstr[0];

           document.getElementById("GridView1ctl12txt_Lm").innerText = newstr[1];

           document.getElementById("GridView1ctl12txt_Gg").innerText = newstr[2];

           document.getElementById("GridView1ctl12txt_Dw").innerText = newstr[3];

      }

     </script>

【后台代码】

  if (!IsPostBack)

        {

            ddlDmSize_12.Attributes.Add("onchange", "sel()");

        }

如果用上面注释掉的语句在VS2005上是可以正常运行的,但是放到虚拟目录下执行却总要报错。

 

于是认真对比了两个源文件(被浏览器解析后),发现确实是有细微差别

这是VS2005上运行后的,从源文件中摘录的:

<input name="GridView1ctl12txt_Dm" type="text" id="GridView1_ctl12_txt_Dm" />

这是在建立了虚拟目录运行后的,从源文件中摘录的:

<input name="GridView1ctl12txt_Dm" type="text" id="GridView1_txt_Dm" />

注意到id的值发生了变化

原本以为获取name 和id 值都能够达到相同效果(实际在vs上并无影响)。

然而为了确保更加准确还是应该选择name属性的值。

posted @   楠木大叔  阅读(287)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示