如何根据 C# 中的行级复选框从 HTML table 获取值?

How to get a value from HTML table based on row-level checkbox in C#?

我有一个包含三个 HTML table 的 aspx 页面。 HTML中的其中一个table如下所示:

<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>

这个 table 看起来像:

我需要的是获取最终用户在 C# 中检查的行的 SchoolID。最好的方法是什么?

我目前正在尝试使用 HTMLAgilityPack 将我的 HTML table 作为数据 table,但我没有成功。正在获取第一个table,我需要第三个。然而,我不确定这是否是最好的方法。请指教

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# 中创建 table 然后发送到前端。使用文件路径不起作用,因为默认情况下 .aspx 文件中没有 table。

EDIT2:Sec,我找到了 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