【问题标题】:Get the values of a cell in a selected row of a RadGrid on client Side获取客户端 RadGrid 选定行中单元格的值
【发布时间】:2011-03-07 10:06:36
【问题描述】:

大家好,我希望有一个简单的解决方案,但在搞砸了最后一天半之后,我会接受一个复杂的解决方案!

我正在组合一个模块,该模块将放入 DotNetNuke 门户,并且我正在用数据填充 Telerik RadGrid。我已经按照我能找到的每个教程和示例进行操作,但结果总是以“object Object”、“null”或“undefined”返回。

我需要: 1) 获取选中的每一行的“BookingID”列的值 2) 将值传递到在 RadWindow 中打开的 url 字符串。

我正在尝试使用 javascript 来完成所有这些工作,但如果您知道更好的方法,那么我现在什么都做不了。

这是我当前的 JavaScript 和一个精简的 radGrid:

 ///Javascript///

function gup(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null) return "";
    else return results[1];
}
    function ShowEditForm() {
        var tab = gup('tabid')
        var mid = gup('mid').replace(/#/, '')
        var masterTableView = $find("perDiemBookingsRadGrid").get_masterTableView();
        var id = masterTableView.get_selectedItems()[0].getDataKeyValue('BookingID');

        window.radopen("/Default.aspx?tabid=" + tab + "&ctl=multiEdit&mid=" + mid + "&SkinSrc=[G]Skins/Blue-NCPP/Plain&BIDs=" + id, "RadWindow3");
    }

【问题讨论】:

  • 它不允许我发布我的网格,因为它有图像...我会在几分钟内清理并发布。
  • 没关系,它只是出于某种原因不喜欢我的网格。这种方式怎么样? senduit.com/acafd4

标签: asp.net javascript telerik


【解决方案1】:

以下代码将为您获取所选行的键。通常,当用户选择行时,我不会弹出 RadWindow。我让他们单击图像/按钮以弹出 RadWindow。

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
 <!--
    function RowSelected(sender, args)
    {
      var userId = args.getDataKeyValue("UserId");
      window.radopen('UserDetail.aspx?userid=' + userId, "RadWindow1");
    }   
    -->
</script>
</telerik:RadCodeBlock>
<telerik:RadGrid ID="RadGrid1" runat="server" >
  <MasterTableView ClientDataKeyNames="UserId" />
     <ClientSettings>
        <Selecting AllowRowSelect="true" />
        <ClientEvents OnRowSelected="RowSelected" />
        </ClientSettings>
  </telerik:RadGrid>

<%-- RadWindowManager --%>
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" Modal="true" Behaviors="Default"
 VisibleTitlebar="true" VisibleStatusbar="false" InitialBehavior="Reload" Style="z-index: 7001"
  Skin="Default" DestroyOnClose="true" Width="750px" Height="500px" >
   <windows>
  <telerik:RadWindow ID="RadWindow1" runat="server">
    </telerik:RadWindow>
  </windows>
</telerik:RadWindowManager>

【讨论】:

    【解决方案2】:
    var grid = $find("<%=perDiemBookingsRadGrid.ClientID%>")
    

    然后你可以遍历grid.MasterTableView.SelectedRows中的行并获取值

    for(var i = 0; i < grid.MasterTableView.SelectedRows.length; i++)
    {
        var selectedRow = grid.MasterTableView.SelectedRows[i];
        var id = selectedRow.KeyValues["BookingID"];
        //code to do stuff here.
    }
    

    【讨论】:

    • 我之前尝试过类似的方法,但只是使用您的代码(复制和粘贴)进行了尝试。网页错误详细信息消息:'MasterTableView.SelectedRows.length' 为空或不是对象行:766 字符:29 代码:0 URI:localhost/Default.aspx?TabID=65&mid=423
    • function ShowEditForm() { var tab = gup('TabID') var mid = gup('mid').replace(/#/, '') var grid = $find("") for (var i = 0; i
    • 我正在使用以前版本的 RadGrid。您可以在文档中使用的版本中找到等效的客户端属性和方法。
    猜你喜欢
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2015-04-24
    相关资源
    最近更新 更多