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("GridView1txt_Dm").innerText = newstr[0];
document.getElementById("GridView1txt_Lm").innerText = newstr[1];
document.getElementById("GridView1txt_Gg").innerText = newstr[2];
document.getElementById("GridView1txt_Dw").innerText = newstr[3];
}
</script>
【后台代码】
if (!IsPostBack)
{
ddlDmSize_12.Attributes.Add("onchange", "sel()");
}
如果用上面注释掉的语句在VS2005上是可以正常运行的,但是放到虚拟目录下执行却总要报错。
于是认真对比了两个源文件(被浏览器解析后),发现确实是有细微差别
这是VS2005上运行后的,从源文件中摘录的:
<input name="GridView1txt_Dm" type="text" id="GridView1_ctl12_txt_Dm" />
这是在建立了虚拟目录运行后的,从源文件中摘录的:
<input name="GridView1txt_Dm" type="text" id="GridView1_txt_Dm" />
注意到id的值发生了变化
原本以为获取name 和id 值都能够达到相同效果(实际在vs上并无影响)。
然而为了确保更加准确还是应该选择name属性的值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?