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

本文介绍如何在客户端脚本中设置GridView模板列显示下拉列表选中项的值。通过对比不同环境下源文件差异,解决了id与name属性匹配问题。

     最近需要实现一个简单的功能,即要让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("GridView1$ctl12$txt_Dm").innerText = newstr[0];

           document.getElementById("GridView1$ctl12$txt_Lm").innerText = newstr[1];

           document.getElementById("GridView1$ctl12$txt_Gg").innerText = newstr[2];

           document.getElementById("GridView1$ctl12$txt_Dw").innerText = newstr[3];

      }

     </script>

【后台代码】

  if (!IsPostBack)

        {

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

        }

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

 

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

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

<input name="GridView1$ctl12$txt_Dm" type="text" id="GridView1_ctl12_txt_Dm" />

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

<input name="GridView1$ctl12$txt_Dm" type="text" id="GridView1_txt_Dm" />

注意到id的值发生了变化

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

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

转载于:https://www.cnblogs.com/lucky_hu/archive/2011/04/27/2030201.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值