2016-03-01 89 views
0

我有一個包含一列正是如此一個asp.net radgrid控件客戶端同級單元格的值:Telerik的radgrid控件 - 可以在javascript

<telerik:GridTemplateColumn UniqueName="RenewsContainer" HeaderText="Renews" HeaderStyle-Width="60px" ItemStyle-Width="60px" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"> 
    <ItemTemplate> 
     <asp:CheckBox ID="chkRenewsView" runat="server" Checked='<%#Eval("Renews")%>' onclick="checkboxChange(this);" /> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:CheckBox ID="chkRenews" runat="server" Checked='<%# Bind("Renews") %>' /> 
    </EditItemTemplate> 
</telerik:GridTemplateColumn> 

通知的onclick="checkboxChange(this)。這工作正常,但在該checkBoxChange()函數內我需要訪問兄弟GridCheckBoxColumn檢查狀態的複選框狀態(選中/未選中)。我不知道如何獲得檢查行的行索引(或rowid),即使獲得行,我也不知道如何獲取GridCheckBoxColumn的檢查狀態(uniquename:「Locked」)。

好像有可能是2層的方法這一點,至少:

  1. 裏面checkboxChange()函數,通過作爲ARG當前行的索引或Telerik的ROWID。我不知道如何得到這個。
  2. 在js函數內部,以某種方式確定包含被單擊的複選框的行的行索引或rowid。

然後一旦獲得rowid/rowidx,如何獲得兄弟檢查狀態?

任何想法?

回答

0

難道你不能給你的複選框一個獨特的CssClass,然後使用jQuery從DOM中選擇它嗎? RadGrid是一個編程包裝器,但是如果你檢查呈現的HTML,它就像其他任何東西一樣只是一個DIV /表格。

<ItemTemplate> 
     <asp:CheckBox ID="chkRenewsView" runat="server" CssClass="MyCheckBox" Checked='<%#Eval("Renews")%>' onclick="checkboxChange(this);" /> 
    </ItemTemplate> 

//jQuery 
var isChecked = $(".MyCheckBox").is(':checked'); 
+0

也許但可以有任意數量的行。我怎麼知道哪一排看? – HerrimanCoder

+0

我明白你在說什麼了。牢記這一點,您可以嘗試實現本機RadGrid客戶端的OnRowClick方法,並向後查找該行中的複選框。或者你可以在代碼後面的OnRowDataBound事件中設置複選框的CSSClass。使用該行的鍵或遞增行ID並將其添加到該複選框的CssClass的末尾。這樣,您將在複選框上以及該行的索引或客戶端數據鍵上擁有句柄,並且可以在JavaScript中獲得句柄。 – Seano666

相關問題