【问题标题】:telerik radgrid - get client side sibling cell value in javascripttelerik radgrid - 在 javascript 中获取客户端同级单元格值
【发布时间】:2016-03-01 14:08:20
【问题描述】:

我有一个包含列的 asp.net radgrid:

<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 的选中状态(唯一名称:“Locked”)。

似乎至少有两种方法可以解决这个问题:

  1. 在 checkboxChange() 函数中,将当前行索引或 telerik rowid 作为 arg 传递。我不知道如何获得这个。
  2. 在 js 函数内部,以某种方式确定包含被单击复选框的行的行索引或行 ID。

然后一旦获得了rowid/rowidx,如何获得同级检查状态?

有什么想法吗?

【问题讨论】:

    标签: telerik telerik-grid


    【解决方案1】:

    难道你不能给你的复选框一个唯一的 CssClass,然后使用 jQuery 从 DOM 中直接选择它吗? RadGrid 是一个程序化包装器,但如果您检查呈现的 HTML,它只是一个 DIV/Table,就像其他任何东西一样。

        <ItemTemplate>
          <asp:CheckBox ID="chkRenewsView" runat="server" CssClass="MyCheckBox" Checked='<%#Eval("Renews")%>' onclick="checkboxChange(this);" />
       </ItemTemplate>
    
    //jQuery
    var isChecked = $(".MyCheckBox").is(':checked');
    

    【讨论】:

    • 也许可以,但可以有任意数量的行。我怎么知道要看哪一行?
    • 我明白你在说什么。牢记这一点,您可以尝试实现本机 RadGrid 客户端 OnRowClick 方法并向后工作以找到该行中的复选框。或者您可以在后面的代码中的 OnRowDataBound 事件中设置复选框的 CSSClass。使用行的 Key 或递增的行 id 并将其添加到复选框的 CssClass 的末尾。这样,您将在复选框以及行的索引或客户端数据键上都有一个句柄,并且能够在 JavaScript 中获取它的句柄。
    猜你喜欢
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多