您现在的位置是:热点 >>正文

asp实现表格式录入

热点72人已围观

简介 姓名部门工资入职日期 张三销售部85002021-03-15 李四技术部120002019-07-01 上一段html表格,是我从一个老同事的ASP文件里抠出来的。他管这叫“表格式录入”页面——一 ...

姓名部门工资入职日期
张三销售部85002021-03-15
李四技术部120002019-07-01
上一段html表格,现表是格式我从一个老同事的ASP文件里抠出来的。他管这叫“表格式录入”页面——一个能让用户一次性填多行数据的录入界面。跟普通表单不同,现表这种页面允许用户点“添加行”按钮,格式动态插入新行,录入然后一次性提交所有数据到数据库。现表 ASP实现这个功能,格式核心就三件事:客户端JS操作表格行,录入服务端Request.Form读取多值,现表再循环写库。格式先说客户端。录入我见过最土的现表写法,是格式直接修改innerHTML往tbody里拼。比如: ```javascript function addRow() { var tbody = document.getElementById('dataRows'); var newRow = ''; tbody.innerHTML += newRow; } ``` 这种写法简单,录入但有个坑——如果之前已经填了数据,innerHTML重绘会把旧值冲掉。所以后来我改用insertRow和insertCell,保留已有输入: ```javascript function addRow() { var tbl = document.getElementById('tblData'); var row = tbl.insertRow(-1); var c1 = row.insertCell(0); c1.innerHTML = ''; var c2 = row.insertCell(1); c2.innerHTML = ''; } ``` 服务端接收时,ASP会把这些字段打包成数组。假设你填了三行,名字分别是“张三”“李四”“王五”,那么Request.Form("name")返回的是一个数组,下标从1开始(ASP的坑,不是0)。你得用循环去取: ```asp <% For i = 1 To Request.Form("name").Count Response.Write Request.Form("name")(i) & " - " & Request.Form("dept")(i) & "
" Next %> ``` 这里有个细节容易翻车。如果用户只填了第二行和第三行,第一行留空,ASP照样会把空字符串算进数组里。所以循环里得先判断Len(Trim(...)) > 0再写库,否则数据库里全是空记录。 实际项目里,表格式录入最常见的场景是批量录入成绩、库存盘点、或者订单明细。我之前给一家小工厂做过一个配件入库页面,他们每天要录几百条零件信息,用这种表格式页面,操作工能一次性粘贴Excel里的数据,再逐行检查修改,比一条条提交快了三倍。 但ASP写这个有个天生的毛病——没有ViewState,不像ASP.NET那样能记住行数。用户加了三行,填了一半,不小心点了提交但验证没过,页面刷新后所有行就消失了。要解决这个,得把已经填的值在服务端重新输出到表格里。做法是判断Request.Form("name")是否存在,然后循环生成行,再把值塞回input的value属性。代码会变得啰嗦,但能救回用户数据。 另一个细节是删除行。别光顾着加行,得给每行配个“删除”按钮。事件绑定别用onclick="deleteRow(this)"这种传this的,在IE里会报错。用行索引更稳: ```javascript function deleteRow(btn) { var row = btn.parentNode.parentNode; row.parentNode.removeChild(row); } ``` 最后提一句,现在都2025年了,要是新项目我不会选ASP。但老系统还在跑,改造成本高,所以这招儿还有用。真遇到性能问题,比如一次提交上千行,ASP循环写库会超时,那就得改用SQL批量插入或存储过程。不过那是另一个话题了。

Tags:

上一篇:python爬虫页面跳转

下一篇:主机漏洞

相关文章

  • md5解密在线解密

    热点

    打开任何一个搜索引擎,输入“md5解密”,跳出来的网站几乎都长一个样:一个输入框,一个“解密”按钮,底下密密麻麻的广告。你输入一段32位的十六进制字符串,点一下,运气好能出个结果,运气不好就给你一句“ ...

    【热点】

    阅读更多
  • 杨显阳与杨名权

    热点

    杨显阳和杨名权,这两个名字放在一起,总让人想起江西新余那所民办高校的两种基因。一个主内,一个主外;一个像静水深流,一个像烈火烹油。 杨名权是江西渝州电子工业学院的创始人。八十年代,他靠修理电视机起家, ...

    【热点】

    阅读更多
  • 好玩的cmd编程代码

    热点

    好玩的cmd编程代码 打开cmd窗口,黑底白字,光标一闪一闪。很多人觉得这是系统管理员才碰的东西,其实它藏着不少能让人上瘾的小把戏。比如那行 tree,敲下去,目录结构像树枝一样蔓延开,看着文件一层 ...

    【热点】

    阅读更多


友情链接