У меня есть приложение, которое показывает серию вкладок.Одна такая вкладка имеет панель, которую я хочу разложить на частичные представления.Мой основной вид выглядит так:
@model MyModel
@{
var x = Html.X();
}
@(x.Panel()
.Layout(LayoutType.Fit)
.Items(i =>
{
i.Add(new GridPanel
{
Region = Region.West,
Layout = LayoutType.Fit.ToString(),
Loader = x.ComponentLoader()
.Url(Url.Action("ListSubData", "My"))
.Mode(LoadMode.Script)
.Params(new { id = Model.Id })
});
}))
Мое подпредставление выглядит так:
@model int
@{
var x = Html.X();
}
@(x.Store(
x.Store()
.ID("MyDataStore")
.AutoLoad(true)
.Proxy(
x.AjaxProxy()
.Url(Url.Action("GetData", "My", new { id = Model }))
.Reader(x.JsonReader().RootProperty("data")))
.Model(
x.Model()
.Fields(
x.ModelField()
.Name("Description")
.Type(ModelFieldType.String),
x.ModelField()
.Name("Category")
.Type(ModelFieldType.String),
x.ModelField()
.Name("Id")
.Type(ModelFieldType.Int)))))
@(x.GridPanel()
.ID("MyPanel")
.StoreID("MyDataStore")
.ColumnModel(
x.Column()
.DataIndex("Description")
.Text("Name"),
x.Column()
.DataIndex("Category")
.Text("Category")))
А мой контроллер выглядит так:
public class MyController : Controller
{
private readonly IStoreModelFactory _myStoreModelFactory;
public DashboardController(IStoreModelFactory factory)
{
_myStoreModelFactory= factory;
}
public ActionResult Index(MyStoreModel model)
{
var viewModel = new MyViewModel
{
Name = model.Name,
Id = model.Id
};
return View(viewModel);
}
public Ext.Net.MVC.PartialViewResult ListSubData(int id)
{
return new Ext.Net.MVC.PartialViewResult
{
RenderMode = RenderMode.AddTo,
Model = id,
ContainerId = string.Format("ListSubData_{0}", id),
WrapByScriptTag = false
};
}
public StoreResult GetData(int id)
{
var models = _myStoreModelFactory.GetStoreResults(id);
return new StoreResult(models);
}
Я следилпример здесь но я не уверен, что делаю все правильно.Похоже, что они вставляют компонент непосредственно на созданную ими панель и вставляют его в коллекцию Items
, тогда как я создаю GridPanel
и вставляю в другой GridPanel
, но я не уверен, как это сделать.прямо в этом контексте.Как мне это сделать?