asp.net后台获取js表格的数据

 

前台:

代码
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
2
3  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5  <html xmlns="http://www.w3.org/1999/xhtml">
6 <head runat="server">
7 <title>asp.net获取前台js表格的数据</title>
8 <style type="text/css"><!--
9 .dis-ime
10 {
11 ime-mode:disabled;
12 }
13
14 -->
15 </style>
16 </head>
17 <body>
18 <form id="form1" runat="server">
19 <h3>使用客户端添加表格的保存</h3>
20 <p>
21 主是就是在提交到服务器之前,处理好表格里的信息,然后赋值给hidden<br />
22 to mqtheone:这里我设置最后一列只能输入数字了,你可以参考一下
23 </p>
24 <div>
25
26 <table id="tab1">
27 <tr>
28 <th>名称</th>
29 <th>内容</th>
30 <th></th>
31 <th></th>
32 </tr>
33 <tr>
34 <td><input type="text" /></td>
35 <td><input type="text" /></td>
36 <td><input type="text" class="dis-ime" onkeypress="return check(event)"/></td>
37 </tr>
38 </table>
39 <input type="button" style="margin-left:400px" mce_style="margin-left:400px" value="添加信息" id="btnAddInfo" /><br />
40 <asp:Button ID="Button1" runat="server" Text="提交" OnClientClick="initData();"
41 onclick="Button1_Click" />
42 <asp:HiddenField ID="HiddenField1"
43 runat="server" />
44
45 </div>
46 </form>
47 </body>
48 <script type="text/javascript"><!--
49 var $=function(){return document.getElementById(arguments[0]);};
50
51 var check=function(e) {
52 return e.keyCode<=57 && e.keyCode>=48
53 }
54
55 $("btnAddInfo").onclick=function() {
56 var tb=$("tab1");//to mqtheone:这里你可用服务器那个table的id,或者查找页面的第一个table
57 var row=tb.insertRow(tb.rows.length);
58 for(var i=0;i<2;i++) {
59 var td=row.insertCell(i);
60 td.innerHTML="<input type='text'/>";
61 }
62 row.insertCell(row.cells.length).innerHTML="<input type='text' class='dis-ime' onkeypress='return check(event)'/>";//样式表禁用输入法,再过滤再数字字符,还没有禁用粘贴,
63 row.insertCell(row.cells.length).innerHTML="<input type='button' onclick='return remove(this)' value='移除'/>";
64 }
65 var remove=function(obj) {
66 var tr=obj.parentNode.parentNode;
67 tr.parentNode.removeChild(tr);
68 }
69
70 var initData=function() {
71 var tb=$("tab1");
72 var data=[];
73 for(var i=1;i<tb.rows.length;i++) {
74 if(tb.rows[i].cells[0].firstChild.value.length>0 && tb.rows[i].cells[1].firstChild.value.length>0) {//将两个文本框里值不为空的项添加到数组,假设只有前两列的数据不能为空
75 data.push(tb.rows[i].cells[0].firstChild.value);
76 data.push(tb.rows[i].cells[1].firstChild.value);
77 data.push(tb.rows[i].cells[2].firstChild.value);
78 } //else {这里可以给个提示说数据没填完整,是否提交,否则return false}
79 }
80 $("HiddenField1").value=data.join("`");//使用这个比较不常用 的字符将数组拼接成字符串
81 return true;
82 };
83 //这里可以增加一个方法判断 hidden是否为空,如果不为空,获取数据遍历,添加到表格中
84 // --></script>
85 </html>
86 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
87
88 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
89
90 <html xmlns="http://www.w3.org/1999/xhtml">
91 <head runat="server">
92 <title>asp.net获取前台js表格的数据</title>
93 <style type="text/css"><!--
94 .dis-ime
95 {
96 ime-mode:disabled;
97 }
98
99 -->
100 </style>
101 </head>
102 <body>
103 <form id="form1" runat="server">
104 <h3>使用客户端添加表格的保存</h3>
105 <p>
106 主是就是在提交到服务器之前,处理好表格里的信息,然后赋值给hidden<br />
107 to mqtheone:这里我设置最后一列只能输入数字了,你可以参考一下
108 </p>
109 <div>
110
111 <table id="tab1">
112 <tr>
113 <th>名称</th>
114 <th>内容</th>
115 <th></th>
116 <th></th>
117 </tr>
118 <tr>
119 <td><input type="text" /></td>
120 <td><input type="text" /></td>
121 <td><input type="text" class="dis-ime" onkeypress="return check(event)"/></td>
122 </tr>
123 </table>
124 <input type="button" style="margin-left:400px" mce_style="margin-left:400px" value="添加信息" id="btnAddInfo" /><br />
125 <asp:Button ID="Button1" runat="server" Text="提交" OnClientClick="initData();"
126 onclick="Button1_Click" />
127 <asp:HiddenField ID="HiddenField1"
128 runat="server" />
129
130 </div>
131 </form>
132 </body>
133 <script type="text/javascript"><!--
134 var $=function(){return document.getElementById(arguments[0]);};
135
136 var check=function(e) {
137 return e.keyCode<=57 && e.keyCode>=48
138 }
139
140 $("btnAddInfo").onclick=function() {
141 var tb=$("tab1");//to mqtheone:这里你可用服务器那个table的id,或者查找页面的第一个table
142 var row=tb.insertRow(tb.rows.length);
143 for(var i=0;i<2;i++) {
144 var td=row.insertCell(i);
145 td.innerHTML="<input type='text'/>";
146 }
147 row.insertCell(row.cells.length).innerHTML="<input type='text' class='dis-ime' onkeypress='return check(event)'/>";//样式表禁用输入法,再过滤再数字字符,还没有禁用粘贴,
148 row.insertCell(row.cells.length).innerHTML="<input type='button' onclick='return remove(this)' value='移除'/>";
149 }
150 var remove=function(obj) {
151 var tr=obj.parentNode.parentNode;
152 tr.parentNode.removeChild(tr);
153 }
154
155 var initData=function() {
156 var tb=$("tab1");
157 var data=[];
158 for(var i=1;i<tb.rows.length;i++) {
159 if(tb.rows[i].cells[0].firstChild.value.length>0 && tb.rows[i].cells[1].firstChild.value.length>0) {//将两个文本框里值不为空的项添加到数组,假设只有前两列的数据不能为空
160 data.push(tb.rows[i].cells[0].firstChild.value);
161 data.push(tb.rows[i].cells[1].firstChild.value);
162 data.push(tb.rows[i].cells[2].firstChild.value);
163 } //else {这里可以给个提示说数据没填完整,是否提交,否则return false}
164 }
165 $("HiddenField1").value=data.join("`");//使用这个比较不常用 的字符将数组拼接成字符串
166 return true;
167 };
168 //这里可以增加一个方法判断 hidden是否为空,如果不为空,获取数据遍历,添加到表格中
169 // --></script>
170 </html>
171
172
173

后台获取 :

 

代码
1 using System;
2 using System.Configuration;
3 using System.Data;
4 using System.Linq;
5 using System.Web;
6 using System.Web.Security;
7 using System.Web.UI;
8 using System.Web.UI.HtmlControls;
9 using System.Web.UI.WebControls;
10 using System.Web.UI.WebControls.WebParts;
11 using System.Xml.Linq;
12
13 public partial class _Default : System.Web.UI.Page
14 {
15 protected void Page_Load(object sender, EventArgs e)
16 {
17
18 }
19 protected void Button1_Click(object sender, EventArgs e)
20 {
21 if (HiddenField1.Value != "")
22 {
23 string[] datas = HiddenField1.Value.Split('`');
24 int i = 0;
25 System.Collections.Hashtable tb = new System.Collections.Hashtable();
26 DataTable dt = new DataTable();//取出数据放进DataTable
27 dt.Columns.Add("Name", typeof(string));
28 dt.Columns.Add("Content", typeof(string));
29 dt.Columns.Add("Value", typeof(int));
30 while (i < datas.Length)
31 {
32 string str1=datas[i];//这样就取出数据了
33 string str2 = datas[i + 1];
34 string str3 = datas[i + 2];
35 int v = 0;
36 int.TryParse(str3, out v);
37 DataRow dr = dt.NewRow();
38 dr["Name"] = str1;
39 dr["Content"] = str2;
40 dr["Value"] = v;
41 dt.Rows.Add(dr);
42 i += 3;
43 }
44 Response.Write("数据行数为"+dt.Rows.Count);
45 }
46 }
47 }
48

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sohighthesky/archive/2009/10/15/4677187.aspx

posted @ 2010-09-17 18:50  Mafer  阅读(593)  评论(0编辑  收藏  举报