获取Telerik asp.net mvc网格中的列值

时间:2013-02-03 13:11:32

标签: asp.net-mvc telerik

我想从Javascript函数中的telerik mvc网格中获取row [0]的column [0]的值。我想知道该怎么做?

   @{
    Html.Telerik().Grid<StationEvaluation>().Name("ManagementGrid")
    .DataKeys(dataKeys => dataKeys.Add(o => o.StationEvaluationID)).Groupable().
    Filterable().Pageable().Sortable().Localizable("fa-IR").
    DataBinding(dataBinding => dataBinding.Ajax()

            ...
            columns.Bound(o => o.StationEvaluationId);
            ...
    }

<script type="text/javascript">
function MyFunction()
{
// I want to get the value here!
}
</script>

2 个答案:

答案 0 :(得分:3)

有更简单的方法可以做到这一点。

所有Telerik MVC小部件都有一个明确的客户端站点API。以下是Grd-Client Side API文档的链接:

http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-grid-client-api-and-events.html

您正在寻找的是一种访问绑定到行的基础数据项的方法。 Grid客户端API公开网格的dataItem属性。

假设您想要将基础数据对象绑定到第一行 - 您将编写以下代码来访问它:

var grid = $("#<ID of the Grid").data("tGrid");
// get the first table row
var tr = $("#Grid tbody tr:eq(1)"); // use eq(1) if the grid is scrollable or eq(0) if not to get the first row
// get the associated data item
var dataItem = grid.dataItem(tr);

现在dataItem表示底层数据对象。

希望这有帮助。

答案 1 :(得分:1)

我找到了答案:

var mastergrid = $('#ManagementGrid');
var mypreciousvalue = mastergrid[0].childNodes[2].childNodes[2].childNodes[0].childNodes[0].innerText;

网格的呈现HTML是这样的:

<div class="t-widget t-grid" id="ManagementGrid">
  <div class=t-toolbar t-grid-toolbar t-grid-top">
       ...</div>
  <div class="t-grouping-header">
       ...</div>
  <table cellspacing="0">
      <colgroup>...</colgroup>
      <thead class="t-grid-header">...</thead>
      <tbody>
         <tr>
            <td> **MY PRECIOUS VALUE** <td>
            ...(other cells)
         </tr>
         ... (other rows)
      </tbody>
  <div class="t-grid-pager t-grid-bottom">
       ...</div>
 </div>