使用js獲取checkbox控件在GridView中的第幾行

此次的知識點是如何使用js獲取checkbox控件所在的是第幾行!!!this

咱們能夠使用 JavaScript 中自帶的 rowIndex 和 cellIndex 來獲取行和列的鍵值 (從0開始)spa

這兩個必定要記好:code

var row_num = GV.rows[i].cells[0].children(0).parentNode.parentNode.rowIndex;server

var col_num = target.parentNode.cellIndex;ip

獲取 parentNode (也就是 td),td.cellIndex 就是所在列的鍵值開發

獲取 parentNode.parentNode (也就是 tr),tr.rowIndex 就是所在行的鍵值get

在開發過程當中,GridView綁定數據時須要在第一列綁定checkbox控件用來執行多選等複雜操做,而後能夠在前臺頁面經過手動點擊checkbox來使其checked屬性變成true也就是選中狀態,在後臺循環時能夠輕鬆獲取到checkbox的checked值,可是因爲一些業務需求可能不須要使用手動去點擊,而是經過編寫出js方法,若符合方法結果的則循環修改checkbox的checked屬性變成true也就是選中狀態,這時會發如今後臺是獲取不到checkbox的checked值。input

在我遇到這個問題時也讓我困擾了很久,明明在前臺經過js方法已經將某些checkbox控件的checked值設置爲true了,爲何在後臺就是獲取不到呢?class

好了,我來講一下最後我是怎麼解決的:後臺

首先這個問題是在前臺js中能夠獲取到checkbox的checked的值,可是在後臺循環時獲取不到。

先設置一個隱藏控件:

<input type="hidden" id="row_num" runat="server" />

在前臺先經過循環判斷被選中的checkbox

if (GV.rows[i].cells[0].children(0).checked) {
                        var row_num = GV.rows[i].cells[0].children(0).parentNode.parentNode.rowIndex;
                        document.getElementById("row_num").value = row_num;
                    }

而後經過 var row_num = GV.rows[i].cells[0].children(0).parentNode.parentNode.rowIndex;來獲取到在GridView中第幾行的CheckBoex的行數,而後賦值到一個隱藏控件上去,這樣在後臺就能夠獲取到這個隱藏控件上面的值了,而後經過在Rows[]裏面將取得的數減1就是在前臺被選中的checkbox的行數,最後將它設置爲True就OK了。

 

if (this.row_num.Value != "") {            int j = Convert.ToInt32(this.row_num.Value);            (this.GridView1.Rows[j - 1].Cells[0].FindControl("CKB_data") as CheckBox).Checked = true;            this.row_num.Value = "";        } 

相關文章
相關標籤/搜索