.net 通过ajax获取的数据,用JS 把获取到的数据append到.aspx页面的<table>下能成功显示,但是在.aspx.cs代码中使用this.tableid.Rows却无法获取到页面上显示出来的数据以及行数。
aspx页面中是
<table>
<tr>
<th>123</th>
<th>123</th>
<th>123</th>
</tr>
</table>
str = "";
这样的,js里使用 $("#tableid").append(str);在前端页面能成功显示出来,但是在.aspx.cs代码中使用this.tableid.Rows却无法获取到页面上显示出来的数据以及行数, 只能获取到写在页面上的<th>的数据,也就是第一行
请问各位这个问题怎么解决
语法问题啦,JS是JS,aspx是aspx。一种做法是在后端CS文件里,按页面ajax调用的方式重新调一遍接口,另外一种是把页面接口返回的数据序列化存在一个变量里,然后赋值给aspx页面上隐藏的文本控件,再通过this.文本控件.text获取字符串,再把字符串反序列化一下得到表格数据。
-------------分割线-------------
第一种比较合适,第二种很别扭,aspx页面有些老了,我看你想使用this.tableid.Rows去获取数据就不由得想到拖控件了.... 刚我说的第二种不知道行不行,好久了知识点有些遗忘。所以建议第一种,怎么拿数据,就怎么在后端取数据。如果本身就是自身项目里的接口(或者只是某个方法),就更简单了,重新调用一下即可。
谢谢老哥啊 但是我还是必须在页面里拿数据才行 因为<table>里有check框,要判断哪一行被勾选然后点击提交的时候再拿所有被勾选行的数据,,所以就比较麻烦
@VCManm: 那你可以通过JS获取所有的数据,包括勾选状态,再通过ajax提交到后台。
后缀.aspx的table一般是这样的
这当然是获取不到的。
在aspx.cs只能取到服务器控件生成的代码,你用ajax请求的数据向table添加Html这是客户端浏览器的操作,table里并不是服务器生成的代码,所以服务器端肯定得不到这些数据。
要想得到把浏览器ajax请求的数据在aspx.cs中取到的方法是这样:
1。建 一个hidden控件 如:<input id="jsondata" type="hidden" runat="server"/>
2.把ajax请求到的数据存放到$("#jsondata").val(ajaxdata)中。。。
3。在aspx.cs中用jsondata.value取值