The problem is that the call to _CustomBinding method never happens and always calls my DisplayStaticLists method. Even though I have added a workaround for this, I still do not get the desired result.
My controller code is as follows:
public
ActionResult DisplayStaticLists(string table)
{
string username = Session["UserName"] as string ?? String.Empty; ;
string password = Session["Password"] as string ?? String.Empty; ;
int count = -1;
// Creating dummy data to bind the grid
var model = MetaqueryService.LoadStaticLists(username, password, table, out count);
if (string.IsNullOrEmpty(table)) ViewData["AllSearches"] = "true";
else ViewData["AllSearches"] = "false";
 
if (Request.IsAjaxRequest())
{
object Data = new
{
centerContent =
this.RenderPartialViewToString("DisplayStaticLists", model),
taskpad =
String.Empty,
buttons =
String.Empty,
title =
"Static Lists"
};
return Json(Data, JsonRequestBehavior.AllowGet);
}
else
{
return View ( new GridModel{Data = model});
}
}
[
GridAction(EnableCustomBinding = true)]
public ActionResult _CustomBinding(GridCommand command, string table)
{
 
string username = Session["UserName"] as string ?? String.Empty; ;
string password = Session["Password"] as string ?? String.Empty; ;
int count = -1;
var model = MetaqueryService.LoadStaticLists(username, password, table, out count);
if (string.IsNullOrEmpty(table)) ViewData["AllSearches"] = "true";
else ViewData["AllSearches"] = "false";
 
//return Json(model, JsonRequestBehavior.AllowGet);
return View(new GridModel { Data = model });
}
public static partial class ControllerExtensions
{
public static string RenderPartialViewToString(this ControllerBase controller, string partialPath, object model)
{
if (string.IsNullOrEmpty(partialPath))
partialPath = controller.ControllerContext.RouteData.GetRequiredString(
"action");
controller.ViewData.Model = model;
using (StringWriter sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, partialPath);
ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
// copy model state items to the html helper
foreach (var item in viewContext.Controller.ViewData.ModelState)
if (!viewContext.ViewData.ModelState.Keys.Contains(item.Key))
{
viewContext.ViewData.ModelState.Add(item);
}
 
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}
}
My View Code is as follows:
DisplayStaticLists.cshtml
<
script type="text/javascript">
function onSelect(e) {
var tabstrip = $("#TabStrip").data("tTabStrip");
var item = $("li", tabstrip.element)[$("#itemIndex").val()];
tabstrip.select(item);
}
</script>
 
@{
Layout =
"";
}
@(Html.Telerik().TabStrip()
.Name(
"TabStrip")
.SelectedIndex(1)
.ClientEvents(events => events
.OnSelect(
"onSelect"))
.Items(tabs =>
{
tabs.Add()
.Text(
"My Static Lists")
.Content(@<text>
@Html.Partial(
"MyStaticListGrid")
</text>);
tabs.Add()
.Text(
"All Static Lists")
.Content(@<text>
@Html.Partial(
"StaticListGrid")
</text>);
})
)
StaticListGrid.cshtml
 
 
@model
IEnumerable<CdcSoftware.Pivotal.ThinClient.Common.ViewBag.StaticListViewModel>
 
@{
Layout =
"";
}
@(Html.Telerik().Grid(Model)
.Name(
"Grid")
.Columns(columns =>
{
columns.Bound(o => o.Name).Width(120);
if (ViewData["AllSearches"].ToString() != "false") columns.Bound(o => o.ListType);
columns.Bound(o => o.Permission);
columns.Bound(o => o.CreatedByEmployeeName);
columns.Bound(o => o.CreateDate);
columns.Bound(o => o.EditedByEmployeeName);
columns.Bound(o => o.EditDate);
})
// .DataBinding(dataBinding => dataBinding.Server().Select("_CustomBinding", "Metaquery"))
 
.DataBinding(dataBinding => dataBinding.Ajax().Select(
"_CustomBinding",
"Metaquery"))
.HtmlAttributes(
new { style = "text-align:left" })
//.RowAction(row =>
//{
// row.HtmlAttributes["style"] = "font-weight: normal; font-size:1em; font-family:times;";
//})
.Sortable(sorting => sorting
.SortMode(
GridSortMode.SingleColumn))
.Scrollable(scroll => scroll.Height(
"385px"))
.Groupable()
.EnableCustomBinding(
true)
//.Filterable()
)
MyStaticListGrid.cshtml
 
 
 
 
@model
IEnumerable<CdcSoftware.Pivotal.ThinClient.Common.ViewBag.StaticListViewModel>
@{
Layout =
"";
}
@(Html.Telerik().Grid(Model)
.Name(
"Grid")
.Columns(columns => columns.AutoGenerate(column =>
{
columns.Bound(o => o.Name).Width(120);
if (ViewData["AllSearches"].ToString() != "false") columns.Bound(o => o.ListType).Width(200);
}))
.DataBinding(dataBinding => dataBinding.Server().Select(
"_CustomBinding",
"Metaquery"))
.HtmlAttributes(
new { style = "text-align:left"})
//.RowAction(row =>
//{
// row.HtmlAttributes["style"] = "font-weight: normal; font-size:1em; font-family:times;";
//})
.Sortable()
.Scrollable(scroll => scroll.Height(
"385px"))
.Groupable()
.Filterable(filtering => filtering.Filters(filters =>
{
filters.Add(o => o.Permission).IsEqualTo(
"Owner");
}))
)
Please let me what's the issue