c# - 如何根据 C# 中的行级复选框从 HTML 表中获取值?
问题描述
我有一个包含三个 HTML 表的 aspx 页面。HTML中的表格之一如下所示:
<table id='example' >
<thead>
<tr>
<th><INPUT type="checkbox" onchange="checkAll(this)" name="chk[]"/></th>
<th>SchoolID</th>
...
</tr>
</thead>
<tr>
<td>
<input type='checkbox' name='name0' />
</td>
<td>200116</td>
</tr>
<tr>
<td>
<input type='checkbox' name='name1' />
</td>
<td>200116</td>
</tr>
...
</table>
此表如下所示:
我需要的是获取SchoolID
最终用户在 C# 中检查的行。最好的方法是什么?
我目前正在尝试使用 HTMLAgilityPack 将我的 HTML 表作为数据表,但我没有成功。它正在获得第一张桌子,我需要第三张桌子。然而,我不确定这是否是最好的方法。请指教。
var doc = new HtmlDocument();
//doc.Load(Request.Url.ToString()); //gives error.
doc.Load(filepath); //this works
//this is returning me the first table of my page, i need the third table.
var nodes = doc.DocumentNode.SelectNodes("//table/tr");
var table = new DataTable("exampleDataTable");
任何帮助将不胜感激!
编辑:原来我不能使用 HTMLAgilityPack,因为我实际上是在 C# 中创建表然后发送到前端。使用文件路径不起作用,因为默认情况下 .aspx 文件中没有表。
EDIT2:秒,我找到了web.load函数,也许我可以使用Request.Url。
解决方案
您可以在提交按钮的click()
侦听器中通过 jQuery 获取所选行的 SchoolID。
var tableControl = document.getElementById('mytable');
$('#myBtn').click(function() {
var arrayOfValues = []
$('input:checkbox:checked', tableControl).each(function() {
arrayOfValues.push($(this).closest('tr').find('td:last').text());
}).get();
alert(arrayOfValues);
});
$('#chkAll').change(function() {
$('input:checkbox').not(this).prop('checked', this.checked);
});
工作演示:JSFiddle
推荐阅读
- python - 如何将列添加到依赖于数据帧或外部数据帧中组的平均值的数据帧?
- r - For 循环使用自定义匹配函数按所有行比较 2 个数据帧
- reactjs - 我如何在 npm run build 期间包含一个文件夹/文件来 getminnify?
- android - Opengl Android 如何绘制平滑纹理
- python - 是否可以托管不使用 Web 服务的 python 脚本?
- c# - 使用 Xamarin C# 将 JSON 值转换为类型“System.Collections.Generic.List”时出错
- javascript - 正则表达式最多允许 3 个数字和一个点
- html - 无法使用 bash 脚本中的 HTML 代码在 Outlook 电子邮件中显示表格
- c++ - 如何搜索 LPWSTR 的子字符串?
- angular - 角度覆盖 ALT+ESC