私は Web 開発を行ったことがないインターンです。現在、devexpress 12.1 ツールを使用して asp.NET MVC 3 を学習しようとしています。Northwind データベースにリンクされているコンテンツ領域に devexpress グリッドビューがあるテンプレートから始めました。それ自体は機能しますが、devexpress タブ ストリップを作成し、2 番目のタブ内にグリッドビューを配置すると、列見出しは表示されますが、データは表示されません。列見出しをクリックして並べ替えると、データが表示されます。ページがロードされたときではなく、タブをクリックした後にグリッドビューをロードしたいと思っています。多分私のコールバックが問題です。私のタブストリップはajaxコールバックを使用しており、グリッドビューもページング用です。モデルを TabControlPartial ページに追加し、TabControlPartial アクションのコントローラーにモデルを渡しました。私' mvc.devexpress.com でデモを見てみましたが、この 2 つを結び付けるものは何もありません。私が推測するビューにモデルを渡すことを100%理解していません。これは簡単なことですが、何をすべきかわかりません。ご協力いただきありがとうございます。
コントローラ(これは私の問題かもしれません):
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()