一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP教程 - asp+jsp+JavaScript動(dòng)態(tài)實(shí)現(xiàn)添加數(shù)據(jù)行

asp+jsp+JavaScript動(dòng)態(tài)實(shí)現(xiàn)添加數(shù)據(jù)行

2019-06-24 14:41asp之家 ASP教程

這篇文章主要介紹了asp+jsp+JavaScript動(dòng)態(tài)實(shí)現(xiàn)添加數(shù)據(jù)行,實(shí)現(xiàn)過(guò)程很詳細(xì),整個(gè)思路清晰,感興趣的小伙伴們可以參考一下

在應(yīng)用程序的開(kāi)發(fā)中,有些輸入信息是動(dòng)態(tài)的,比如我們要注冊(cè)一個(gè)員工的工作經(jīng)歷,比如下圖

asp+jsp+JavaScript動(dòng)態(tài)實(shí)現(xiàn)添加數(shù)據(jù)行

如果做成死的,只能填寫(xiě)三個(gè),如果是四個(gè)呢?或者更多呢,那不是添加不上去了嗎,所以這樣固然不好,我們可以用動(dòng)態(tài)添加表格行實(shí)現(xiàn),如下圖,添加一行,輸入一行信息,這樣比較靈活

asp+jsp+JavaScript動(dòng)態(tài)實(shí)現(xiàn)添加數(shù)據(jù)行

下面我們就來(lái)看看如何在asp和asp.net中結(jié)合javascript來(lái)實(shí)現(xiàn)這種效果:
首先,動(dòng)態(tài)添加表格是要在前臺(tái)實(shí)現(xiàn)的,當(dāng)然后臺(tái)也可以,不過(guò)可能要用到ajax,很麻煩,所以最好采用javascript來(lái)實(shí)現(xiàn),下面來(lái)介紹動(dòng)態(tài)添加表格行的兩種方式:
第一種:源碼
Javascript:

 <script type="text/javascript">
 /**//*This function is use to add one row dynamicly 
* tabObj : Target table 
* colNum: The number of columns that of a row in table 
* sorPos: The source of the new row. 
* targPos: The position where the new row will be added. 
* 
*/ 
function addRow(tabObj,colNum,sorPos,targPos){ 
var nTR = tabObj.insertRow(tabObj.rows.length-targPos); // Insert a new row into appointed table on the 
//appointed position. 
var TRs = tabObj.getElementsByTagName('TR'); // Get TRs collection from the appointed table 
var sorTR = TRs[sorPos]; // Positioned the sorTR 
var TDs = sorTR.getElementsByTagName('TD'); // Get TDs collection from the appointed row 
if(colNum==0 || colNum==undefined || colNum==isNaN){ 
colNum=tabObj.rows[0].cells.length; 
} 

var ntd = new Array(); // Create a new TDs array 
for(var i=0; i< colNum; i++){ // Traverl the TDs in row 
ntd[i] = nTR.insertCell(); // Create new cell 
ntd[i].id = TDs[0].id; // copy the TD's id to new cell. | Attention! The TDs's 
//suffix must be appointed 
ntd[i].innerHTML = TDs[i].innerHTML; // copy the value in ntd[i]'s innerHTML from corresponding TDs 
} 

} 
/**//* This function is use to remove appointed row in appointed table 
* tabObj: the appointed table 
* targPos: target row position 
* btnObj: currently clicked delete image button 
* 
*/ 
function deleteRow(tabObj,targPos,btnObj){ //Remove table row 
for(var i =0; i<tabObj.rows.length;i++){ 
if(tabObj.getElementsByTagName('img')[i]==btnObj){ 
tabObj.deleteRow(i+targPos); 
} 
} 
} 
</script>

Html

<table id=tabUserInfo border=1 width="720"> 
<tr> 
 <td>姓名</td>
 <td>性別</td>
 <td>年齡</td>
 <td>愛(ài)好</td>
<td>Delete</td> 
</tr> 
<tr style="display:none" id=trUserInfo> 
<td id=tdUserInfo><input id=username name=username ></td> 
<td id=tdUserInfo><input id=usersex name=usersex></td> 
<td id=tdUserInfo><input id=userage name=userage></td> 
<td id=tdUserInfo><input id=userlove name=userlove></td> 
<td id=tdUserInfo>
<img style="margin: 0px; padding: 0px; outline: none; line-height: 25.2px; font-size: 14px; width: 660px; overflow: hidden; clear: both; font-family: tahoma, arial, "Microsoft YaHei";">
	
<script type="text/javascript">
 function addRow()
 {
  var root = document.getElementById("tbody")
  var allRows = root.getElementsByTagName('tr');
  var allCells = allRows[0].getElementsByTagName('td');
  var newRow = root.insertRow();
  var newCell0 = newRow.insertCell();
  var newCell1 = newRow.insertCell();
  var newCell2 = newRow.insertCell();
  var newCell3 = newRow.insertCell();
  newCell0.innerHTML = allCells[0].innerHTML;
  newCell1.innerHTML = allCells[1].innerHTML;
  newCell2.innerHTML = allCells[2].innerHTML;
  newCell3.innerHTML = allCells[3].innerHTML;

 }
 function removeRow(r)
 {
 var root = r.parentNode;
 root.deleteRow(r);
 }
 </script>

Html

 <table border="1">
  <tr>
  <td>aaaa</td>
  <td>bbbb</td>
  <td>cccc</td>
  <td>操作</td>
 </tr>
  <tr>
  <td><select></select></td>
  <td><input id="Text1" type="text" /></td>
  <td><input id="Text2" type="text"/></td>
  <td></td>
 </tr>
 <tbody id="tbody">
 <tr style="display:none">
  <td><select></select></td>
  <td><input id="a" type="text" /></td>
  <td><input id="b" type="text"/></td>
  <td><input type="button" value="remove" onclick="removeRow(this.parentNode.parentNode)"/></td>
 </tr>
 </tbody>
 </table>
 <table><tr><td><input type="button" value="add" onclick="addRow()" /></td></tr></table>

注意:和第一個(gè)基本類(lèi)似,如果你希望默認(rèn)的情況下就有一行,那么可以靜態(tài)的添加一行

下面,就來(lái)看看如何通過(guò)后臺(tái)完成對(duì)其操作,比如對(duì)新增行的修改,刪除,添加等
首先說(shuō)一下數(shù)據(jù)庫(kù)的問(wèn)題
對(duì)于這些需要?jiǎng)討B(tài)添加的表格行的記錄,我們需要重新放到放到一個(gè)表里,就是單獨(dú)做一個(gè)表,比如上面說(shuō)到的工作經(jīng)歷的 問(wèn)題當(dāng)然了,員工要有一個(gè)員工表,記錄姓名,年齡,身份證,學(xué)歷等信息,對(duì)于工作經(jīng)歷這塊,就需要單獨(dú)做一個(gè)工作經(jīng)歷表,然后根據(jù)外鍵,建立他們之間的關(guān)系,這是數(shù)據(jù)庫(kù)方面的設(shè)計(jì)
下面就來(lái)看看如何在asp中實(shí)現(xiàn)這些
添加操作:
代碼:

<!--#include file="inc/conn.asp" -->
<%
 if request("tj")="添 加" then 
 set rs=server.CreateObject("adodb.RecordSet")
 strsql="select * from tb_person"
 rs.open strsql,conn,2,3
 for i =1 to request("username").count 
 rs.addnew()
 rs("userName")=request("username")(i)
 rs("sex")=request("usersex")(i)
 rs("age")=request("userage")(i)
 rs("aihao")=request("userlove")(i)
 rs.update
 next
 end if
 
%>
<html>
<head>
<script src="myjs.js"></script> 
</head>
<body>
<form name=frmUserInfo action="user_list1.asp" method=post> 
<br> 
<table id=tabUserInfo border=1 width="720"> 
<tr> 
 <td>姓名</td>
 <td>性別</td>
 <td>年齡</td>
 <td>愛(ài)好</td>
<td>Delete</td>
</tr> 
<tr style="display:none" id=trUserInfo> 
<td id=tdUserInfo><input id=username name=username ></td> 
<td id=tdUserInfo><input id=usersex name=usersex></td> 
<td id=tdUserInfo><input id=userage name=userage></td> 
<td id=tdUserInfo><input id=userlove name=userlove></td> 
<td id=tdUserInfo>
<img style="margin: 0px; padding: 0px; outline: none; line-height: 25.2px; font-size: 14px; width: 660px; overflow: hidden; clear: both; font-family: tahoma, arial, "Microsoft YaHei";">
	
<form name=frmUserInfo action="user_list1.asp" method=post> 
<br> 
<table border=1 width="720"> 
<tr> 
 <td>姓名</td>
 <td>性別</td>
 <td>年齡</td>
 <td>愛(ài)好</td>
<td>Delete</td> 
</tr> 
<% 
 set rs=server.CreateObject("adodb.RecordSet")
 strsql="select * from tb_person"
 rs.open strsql,conn,2,3
 do while not rs.eof 
%>
<tr id=trUserInfo1> 
<td id=tdUserInfo1><input id=username1 name=username1 value="<%=rs("userName")%>" ></td> 
<td id=tdUserInfo1><input id=usersex1 name=usersex1 value="<%=rs("age")%>"></td> 
<td id=tdUserInfo1><input id=userage1 name=userage value="<%=rs("sex")%>"></td> 
<td id=tdUserInfo1><input id=userlove1 name=userlove value="<%=rs("aihao")%>"></td> 
<td id=tdUserInfo>
<input type="submit" value="刪除" />
<!--<img rs.movenext
 loop
%>
<table id=tabUserInfo border=1 width="720"> 
<tr> 
 <td></td>
 <td></td>
 <td></td>
 <td></td>
<td></td> 
</tr> 
<tr style="display:none" id=trUserInfo> 
<td id=tdUserInfo><input id=username name=username ></td> 
<td id=tdUserInfo><input id=usersex name=usersex></td> 
<td id=tdUserInfo><input id=userage name=userage></td> 
<td id=tdUserInfo><input id=userlove name=userlove></td> 
<td id=tdUserInfo>
<img style="margin: 0px; padding: 0px; outline: none; line-height: 25.2px; font-size: 14px; width: 660px; overflow: hidden; clear: both; font-family: tahoma, arial, "Microsoft YaHei";">
	
 protected void Button1_Click(object sender, EventArgs e)
 {
  
  string username = Request["username"].ToString();
  string[] namelist = username.Split(',');
  string[] sexlist = username.Split(',');
  string[] agelist = username.Split(',');
  string[] lovelist = username.Split(',');
  for (int i = 1; i < namelist.Length; i++)
  {
   //獲得傳遞過(guò)來(lái)的值,對(duì)其操作
   string name = namelist[i].ToString();
   string usersex = sexlist[i].ToString();
   string userage = agelist[i].ToString();
   string userlove = agelist[i].ToString();
   //對(duì)其操作,比如添加修改等
  }
  
 }

在這里我們使用Request["username"]來(lái)獲得值,頁(yè)面用的是html標(biāo)簽,不是服務(wù)器端的控件,不用使用.value或者Text來(lái)實(shí)現(xiàn), 這樣就可以用asp或者jsp的思想來(lái)處理了。
同樣,修改和刪除的也可以使用asp或者jsp的思想來(lái)處理。
或者從提交到處理完全采用jsp和asp的思想,創(chuàng)建一個(gè)HttpHandler,把數(shù)據(jù)都提交到這里面處理,這樣也可以,不過(guò)第一種方法好些,這樣容易獲得值并處理,不需要轉(zhuǎn)換什么的。

具體的問(wèn)題具體對(duì)待,比如需要默認(rèn)就有一行,這個(gè)時(shí)候就需要在員工表里添加工作記錄的字段,這一行的記錄都添加到員工表里,然后編輯刪除的時(shí)候需要先編輯,然后進(jìn)行兩個(gè)添加等。
大體實(shí)現(xiàn)添加數(shù)據(jù)行的思路就是這樣,有什么問(wèn)題,希望大家給予指正....

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成年男女免费视频网站 | 国产亚洲综合成人91精品 | 色综合久久中文字幕综合网 | 毛片一区二区三区提莫影院 | 久久精品中文字幕 | 日韩一区二区三区精品 | 欧美亚洲一区二区三区在线 | 亚洲视频一区二区在线观看 | 九九热视频 这里有精品 | 波多野结衣在线观看中文字幕 | 91系列在线观看免费 | mm在线 | 欧美视频在线一区 | avove全部视频在线观看 | 亚洲成A人片在线观看中文L | 国内精品久久久久影院男同志 | 欧美黑人性猛交╳xx╳动态图 | 亚洲国产成人久久午夜 | 欧美性欲 | 亚洲国产高清一区二区三区 | 国产成人亚洲综合91精品555 | 荡女人人爱全文免费阅读 | 亚洲天堂网在线观看视频 | 秋葵视频成人 | 日韩在线视频一区二区三区 | 欧美日韩国产一区二区三区欧 | 1769在线观看| 星球大战成人h无删减版 | 母乳在线播放 | 性插图动态图无遮挡 | 国产在线步兵一区二区三区 | 欧美靠逼视频 | 动漫人物差差差动漫人物免费观看 | 国产精品九九免费视频 | porno xxxx日本| 日本小视频免费 | 午夜视频一区 | 亚洲一级视频在线观看 | 数学老师扒开腿让我爽快 | 成人毛片1024你懂的 | 国产第一草草影院 |