我是一名从未做过任何Web开发的实习生,所以您知道我来自哪里。我目前正在尝试使用devexpress 12.1工具来学习asp.net MVC 3。我开始使用一个模板,该模板在链接到Northwind db的内容区域中具有devexpress gridview。它本身是有效的,但是当我创建一个devexpress选项卡条并将gridview放置在第二个选项卡中时,我会得到列标题,但是不会显示任何数据。当我点击一个列标题来排序数据显示。我想在点击选项卡后加载gridview,而不是在页面加载时加载。也许我的回调是问题。我的标签条使用ajax回调,gridview也是用于分页。我已经将该模型添加到TabControlPartial页面,并在TabControlPartial操作的控制器中的模型中传递。我试着在mvc.devexpress.com上观看演示,但没有任何东西将两者结合在一起。我不会100%理解将模型传递给我的观点。我知道这很简单,但我不知道该怎么做。谢谢你的帮助。Devexpress 12.1 MVC GridView Inside Tab Strip问题
控制器(这可能是我的问题):
public ActionResult LookUp()
{
return View(NorthwindDataProvider.GetCustomers());
}
public ActionResult _TabControlPartial()
{
return PartialView("_TabControlPartial", NorthwindDataProvider.GetCustomers());
}
public ActionResult _GridViewPartial()
{
return PartialView("_GridViewPartial", NorthwindDataProvider.GetCustomers());
}
查找视图(索引):
@model System.Collections.IEnumerable
@Html.Partial("_TabControlPartial", Model)
标签部分:
@model System.Collections.IEnumerable
@Html.DevExpress().PageControl(
settings =>
{
settings.Name = "TabControl";
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
settings.Height = System.Web.UI.WebControls.Unit.Percentage(100);
settings.CallbackRouteValues = new { Controller = "Customers", Action =
"_TabControlPartial" };
settings.TabPages.Add(
tabOne =>
{
tabOne.Name = "TabOne";
tabOne.Text = "Start";
tabOne.SetContent(() =>
{
ViewContext.Writer.Write("Start");
});
});
settings.TabPages.Add(
tabTwo =>
{
tabTwo.Name = "TabTwo";
tabTwo.Text = "Customer List";
tabTwo.SetContent(() =>
{
Html.RenderPartial("_GridViewPartial", Model);
});
});
}).GetHtml()
GridView的部分:
@Html.DevExpress().GridView(
settings =>
{
settings.Name = "GridView";
settings.CallbackRouteValues = new { Controller = "Customers", Action =
"_GridViewPartial" };
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
settings.Height = System.Web.UI.WebControls.Unit.Percentage(100);
settings.SettingsPager.Visible = true;
settings.SettingsPager.PageSize = 15;
settings.ControlStyle.Paddings.Padding = System.Web.UI.WebControls.Unit.Pixel(0);
settings.ControlStyle.Border.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(0);
settings.ControlStyle.BorderBottom.BorderWidth =
System.Web.UI.WebControls.Unit.Pixel(1);
//Configure grid's columns in accordance with data model fields
settings.Columns.Add("ContactName");
settings.Columns.Add("Address");
settings.Columns.Add("City");
settings.Columns.Add("PostalCode");
settings.Columns.Add("Phone");
}).Bind(Model).GetHtml()
你能告诉我们你的'_GridViewPartial'吗? – ScottieMc
糟糕。谢谢@ScottieMc。我的意思是在原始文章中有。现在添加。 – jrob42
希望这会为您指出正确的方向。查看[CallbackPanel](http://www.devexpress.com/Support/Center/p/E2927.aspx)控件和客户端[TabStrip events](http://mvc.devexpress.com/TabControl/ClientSideAPI )。您应该能够使用“ActiveTabChanged”客户端事件强制CallbackPanel进行呈现。 – ScottieMc