通過JS獲取頁面表格選中行信息


  在ASP.NET中表格的顯式方法多種多樣,有html標簽<table></table>,有asp服務器控件GridView,還有Repeater控件等都可以幫我們在頁面顯式表格信息。GridView控件比較強大,它有自帶的屬性和方法可以用來對顯式的表格數據進行各種操作。但是如果使用傳統html標簽<table></table>或者是Repeater控件來顯式數據,又該如何取到選中行的數據呢。這里我們來介紹一下利用JS來取頁面表格數據的方法。

  

  如圖所示,我們需要對表格中的數據實現編輯,刪除等操作。

  下面以Repeater控件為例:

  (1)頁面表格:定義好表頭,並設置好數據綁定(有些操作需要取到該條數據的主鍵,考慮到實際情況,我們應該將主鍵隱藏,對相應的列使用hidden屬性即可)。在后台只需要將Repeater綁定到相應的數據源。這里我們用class來標記button,這樣在JS中就可以取出所有的class相同的button作為一組。從而在JS中監聽並選定相應行。

 1 <label>出貨單單頭:</label>
 2                     <asp:Repeater ID="Top_Reapter" runat="server">
 3                         <HeaderTemplate>
 4                             <table id="Top_Table" border="1">
 5                                 <tr>
 6                                     <th hidden="hidden">ID</th>
 7                                     <th>客戶ID</th>
 8                                     <th>出貨人員</th>
 9                                     <th>創建時間</th>
10                                     <th>更新時間</th>
11                                     <th>編輯</th>
12                                     <th>刪除</th>
13                                     <th>新增子信息</th>
14                                 </tr>
15                         </HeaderTemplate>
16                         <ItemTemplate>
17                             <tr>
18                                 <td hidden="hidden"><%#Eval("ship_key")%></td>
19                                 <td><%#Eval("customer_id")%></td>
20                                 <td><%#Eval("ship_man")%></td>
21                                 <td><%#Eval("create_time")%></td>
22                                 <td><%#Eval("update_time")%></td>
23                                 <td>
24                                     <button type="button" class="Top_Edit">編輯</button>
25                                 </td>
26                                 <td>
27                                     <button type="button" class="Top_Delete">刪除</button>
28                                 </td>
29                                 <td>
30                                     <button type="button" class="Insert_Line">新增子信息</button>
31                                 </td>
32                             </tr>
33                         </ItemTemplate>
34                         <FooterTemplate></table></FooterTemplate>
35                     </asp:Repeater>

   

  (2)JS部分:通過class來獲取相應的一組button並設置監聽。然后通過標簽名<tr>獲取選中行,通過標簽名<td>獲取選中行所有列數據的一個集合,通過DOM操作將相應的數據顯示在前台指定的位置。

 1 /*編輯單頭信息*/
 2 var Top_Edit = document.getElementsByClassName("Top_Edit");
 3 
 4 for (var i = 0; i < Top_Edit.length; i++) {
 5 
 6     Top_Edit[i].index = i;
 7 
 8     Top_Edit[i].onclick = function () {
 9 
10         var table = document.getElementById("Top_Table");
11 
12         /*獲取選中的行 */
13         var child = table.getElementsByTagName("tr")[this.index + 1];
14 
15         /*獲取選擇行的所有列*/
16         var SZ_col = child.getElementsByTagName("td");
17 
18         document.getElementById("Edit_id").value = SZ_col[0].innerHTML;
19         document.getElementById("edit_customer").value = SZ_col[1].innerHTML;
20         document.getElementById("edit_man").value = SZ_col[2].innerHTML;
21         document.getElementById("Top_Creat_Time").value = SZ_col[3].innerHTML;
22         document.getElementById("Top_Update_Time").value = SZ_col[4].innerHTML;
23 
24     }
25 }

   

  JS獲取表格數據就這么簡單幾步。獲取表格數據還有jQuery等其他方法,可以多去嘗試,然后對比總結,這樣對於程序員本身也是一個提高。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM