首页 新闻 会员 周边

asp.net服务器端,如何读取javascript修改过的控件内容?

0
悬赏园豆:60 [已解决问题] 解决于 2010-07-05 09:14

我写了个例子.
有两个问题:
1.在服务器端如何获取某行某列的内容?
2.如果不用hidden,有可能让asp.net自己读入这个table内容吗?
  在例子中table1的行数始终是2行,可以让table1的行数与实际行数相符吗?
请各位高手赐教!谢谢!
Default3.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" validateRequest=false  %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
   
<title></title>
   
<script type="text/javascript">
       
function addRow(tableId) {
           
var domTable = document.getElementById(tableId);

           
var _row = domTable.insertRow();
           
var _col = _row.insertCell();
            _col.innerHTML
= "<input type='text' />";


        }
       
function saveTable(tableId) {
           
var domTable = document.getElementById(tableId);
           
var hid = document.getElementById("Hidden1");
            hid.value
= domTable.innerHTML;
    }
   
</script>
</head>
<body>
   
<form id="form1" runat="server">
   
<div>
   
<table id="table1"  width="100%" runat="Server">
       
<tr>
           
<td>
               
<input type="text" />
               
            
</td>
       
</tr>
       
<tr>
           
<td>
               
<input type="text" />
            
</td>
       
</tr>
   
</table>
   
       
<input id="Button1" type="button" value="为table加一行" onclick="addRow('table1');" />
       
       
<asp:Button OnClientClick="saveTable('table1');" ID="Button2" runat="server" Text="提交到服务器"  onclick="Button2_Click" />
       
<input id="Hidden1" type="hidden" runat="Server" />
   
   
</div>
   
</form>
</body>
</html>



Default3.aspx.cs

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default3 : System.Web.UI.Page
{
   
protected void Page_Load(object sender, EventArgs e)
    {

    }
   
protected void Button2_Click(object sender, EventArgs e)
    {

        Response.Write(
"table的行数为:" + table1.Rows.Count + "<br/>" + Hidden1.Value);
    }
}

 

小堆爸的主页 小堆爸 | 初学一级 | 园豆:7
提问于:2010-07-01 09:29
< >
分享
最佳答案
0

将form改为enctype="multipart/form-data"

http://www.cnblogs.com/downmoon/archive/2008/07/23/1249410.html

收获园豆:60
邀月 | 高人七级 |园豆:25475 | 2010-07-01 09:59
我加了还是不行,为什么呢?行数还是2
小堆爸 | 园豆:7 (初学一级) | 2010-07-01 11:08
@小堆爸:这里有一个新例子: http://www.cnblogs.com/downmoon/archive/2010/07/01/1769309.html
邀月 | 园豆:25475 (高人七级) | 2010-07-01 16:51
其他回答(2)
0

不用hidden可以解决,思路如下:

(1):在td——》 input 定义其ID 为'TR_1' 代表第一行第一列 ,然后标上runat="server" 这样在你提交的时候值就回回传到服务器端

 (2):通过WHILE 循环取值,因为你定义的ID有一定义的规律,就可以取到值,和总行数,当取值为NULL 的时候WHILE循环结束

觉知的凡夫 | 园豆:468 (菜鸟二级) | 2010-07-01 10:39
Request["TR_1"]
支持(0) 反对(0) 觉知的凡夫 | 园豆:468 (菜鸟二级) | 2010-07-01 10:40
加入runat='server'报错,提示"缺少对象",加入代码如下: _col.innerHTML = "<input type='text' id='t3' runat='server'/>";
支持(0) 反对(0) 小堆爸 | 园豆:7 (初学一级) | 2010-07-01 11:50
0

request["字段名称"]。

邢少 | 园豆:10926 (专家六级) | 2010-07-01 11:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册