首页 新闻 搜索 专区 学院

.net前端写好在<table>中的数据在后台无法拿到

0
悬赏园豆:200 [已解决问题] 解决于 2021-01-06 08:19

.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>的数据,也就是第一行
请问各位这个问题怎么解决

VCManm的主页 VCManm | 初学一级 | 园豆:2
提问于:2021-01-04 15:17
< >
分享
最佳答案
0

语法问题啦,JS是JS,aspx是aspx。一种做法是在后端CS文件里,按页面ajax调用的方式重新调一遍接口,另外一种是把页面接口返回的数据序列化存在一个变量里,然后赋值给aspx页面上隐藏的文本控件,再通过this.文本控件.text获取字符串,再把字符串反序列化一下得到表格数据。
-------------分割线-------------
第一种比较合适,第二种很别扭,aspx页面有些老了,我看你想使用this.tableid.Rows去获取数据就不由得想到拖控件了.... 刚我说的第二种不知道行不行,好久了知识点有些遗忘。所以建议第一种,怎么拿数据,就怎么在后端取数据。如果本身就是自身项目里的接口(或者只是某个方法),就更简单了,重新调用一下即可。

收获园豆:200
默卿 | 大侠五级 |园豆:5004 | 2021-01-04 16:55

谢谢老哥啊 但是我还是必须在页面里拿数据才行 因为<table>里有check框,要判断哪一行被勾选然后点击提交的时候再拿所有被勾选行的数据,,所以就比较麻烦

VCManm | 园豆:2 (初学一级) | 2021-01-04 17:02

@VCManm: 那你可以通过JS获取所有的数据,包括勾选状态,再通过ajax提交到后台。

默卿 | 园豆:5004 (大侠五级) | 2021-01-04 17:09
其他回答(3)
0

后缀.aspx的table一般是这样的

Yimi依米 | 园豆:361 (菜鸟二级) | 2021-01-04 17:06
0

这当然是获取不到的。

顾晓北 | 园豆:10357 (专家六级) | 2021-01-04 17:26
0

在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取值

为乐而来 | 园豆:1081 (小虾三级) | 2021-01-05 09:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册