На мой взгляд, есть это:Ext.Net MVC обновить Panelgrid от контроллера
@{
var properties = db.StylesPropertyDefs.OrderBy(o => o.PropertyId);
}
..
..
@(Html.X().GridPanel()
.Title("Array Grid")
.ID("propertyGrid")
.Width(600)
.Height(350)
.Store(Html.X().Store()
.Model(Html.X().Model()
.Fields(
new ModelField("PropertyId", ModelFieldType.Int),
new ModelField("PropertyName", ModelFieldType.String),
new ModelField("PropertyShortName", ModelFieldType.String),
new ModelField("PropertyActiveFlag", ModelFieldType.Boolean)
)
).DataSource(properties)
..
..
И у меня есть в контроллере, чтобы добавить новое свойство. Новое свойство добавляется успешно, но я могу обновить PanelGrid (без обновления всей страницы). Вот контроллер:
[DirectMethod]
public ActionResult AddNewProperty(string propertyName, string propertyCode, bool propertyActive)
{
if (propertyName == "" || propertyCode=="")
{
X.Msg.Show(new MessageBoxConfig
{
Title = "Error",
Message = "The field name or code can not be empty.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.ERROR
});
return this.Direct();
}
//if all is ok add new property
var newOne = new StylesPropertyDef
{
PropertyActiveFlag = propertyActive,
PropertyName = propertyName,
PropertyShortName = propertyCode
};
var db = new TaosKnowledgeDataContext(DataUtils.GetConStringLocal());
db.StylesPropertyDefs.InsertOnSubmit(newOne);
db.SubmitChanges();
//reload properties
var properties = db.StylesPropertyDefs.OrderBy(o => o.PropertyId);
var theGrid = X.GetCmp<GridPanel>("propertyGrid");
//now i need refresh or reload the panel grid.
X.GetCmp<Window>("AddNewProperty").Close();
return this.Direct();
//return RedirectToAction("StyleProperties");
}
Таким образом, возобновление, мне нужно обновить PanelGrid источник данных (или магазин) от контроллера. Хотел бы ты помочь мне?
магазин = X.GetCmp ("Store1"); дайте мне нулевой источник данных, это нормально? и store.DataBind() выдает ошибку: Ошибка сервера в '/' приложении. Индекс и длина должны относиться к местоположению внутри строки. Имя параметра: длина –
Да, извините, для вызова DataBind в магазине требуется модель магазина, которую следует воссоздать вручную в таком сценарии. Хотя, ваше решение с AjaxProxy лучше. Просто я не был уверен, что это уместно. –