Я использую бесплатную сетку Telerik.Web.Mvc и следую этому примеру: http://demos.telerik.com/aspnet-mvc/grid/hierarchyajax
Мой выпуск:
Я заполняю таблицу результатами поиска после того, как пользователь ввел некоторые данные и отправил с помощью кнопки поиска.
В методе DetailView () я ссылаюсь на мой метод SearchQuote_QuotesForHierarchyAjax, который определен в моем контроллере, когда DetailView выполняет данные, которые должны быть получены, но это действие контроллера не выполняется для меня.
Если я загружаю сетку при первой загрузке страницы, она выполняется. но не при загрузке сетки в кнопку поиска нажмите
Код в моем проекте:
My SearchQuote.aspx View выглядит следующим образом
<%= Html.Telerik().Grid(Model.QuoteSummaryList)
.Name("SearchQuoteGrid")
.Columns(columns =>
{
columns.Bound(q => q.QuoteId).Title("Quote #").Width(50);
columns.Bound(q => q.AxiomId).Title("Axiom Id").Width(180);
})
.ClientEvents(events => events.OnRowDataBound("quotes_onRowDataBound"))
.DetailView(details => details.ClientTemplate(
Html.Telerik().Grid(Model.QuoteSubSummaryList)
.Name("Quotes_<#= QuoteId #>")
.Columns(columns =>
{
columns.Bound(o => o.PositionCode).Width(101);
columns.Bound(o => o.Group).Width(140);
})
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("SearchQuote_QuotesForHierarchyAjax", "SearchQuote", new
{quoteid ="<#= QuoteId #>"}))
.Pageable()
.Sortable()
.Filterable()
.ToHtmlString()
))
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("SearchQuote_Select", "SearchQuote"))
.Sortable()
.Pageable(p => p.PageSize(3))
%>
<script type="text/javascript">
function expandFirstRow(grid, row) {
if (grid.$rows().index(row) == 0) {
grid.expandRow(row);
}
}
function quotes_onRowDataBound(e) {
var grid = $(this).data('tGrid');
expandFirstRow(grid, e.row);
}
</script>
И SearchQuoteController имеет этот код.
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public ActionResult SearchQuote_QuotesForHierarchyAjax(int quoteid)
{
List<QuoteLineSummaryDM> sublist = new List<QuoteLineSummaryDM>();
QuoteLineSummaryDM a = new QuoteLineSummaryDM();
a.PositionCode = "50";
a.Group = "1";
sublist.Add(a);
QuoteLineSummaryDM b = new QuoteLineSummaryDM();
b.PositionCode = "40";
b.Group = "2";
sublist.Add(b);
var qrows = (from r in sublist
select r).AsQueryable();
return View(new GridModel(qrows));
}
Что мне не хватает? Моя версия даже проще, чем демо. Есть идеи?
Спасибо.
Я нашел другую сетку, которая делает то, что я хочу сделать. Это называется jqGrid