簡體   English   中英

獲取客戶端上RadGrid的選定行中單元格的值

[英]Get the values of a cell in a selected row of a RadGrid on client Side

大家好,我希望對此有一個簡單的解決方法,但是在最后一天半弄亂后,我會接受一個復雜的解決方法!

我正在組裝一個模塊,該模塊將放入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");
    }

以下代碼將為您提供所選行的鍵。 通常,當用戶選擇行時,我不會彈出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>
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.
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM