Этот компонент работает, когда у вас есть более одного элемента внутри ветки «if»:
var Display = React.createClass({
render: function() {
if (!this.props.when) {
return false;
}
return React.DOM.div(null, this.props.children);
}
});
Использование:
render: function() {
return (
<div>
<Display when={this.state.loading}>
Loading something...
<div>Elem1</div>
<div>Elem2</div>
</Display>
<Display when={!this.state.loading}>
Loaded
<div>Elem3</div>
<div>Elem4</div>
</Display>
</div>
);
},
P.s. кто-то считает, что эти компоненты не подходят для чтения кода. Но в моем уме html с javascript хуже
Самый простой способ сделать это - привязать событие редактирования сетки, и это позволит вам с легкостью изменить заголовок.
Я предоставил додзё, показывающее, как это сделать. https://dojo.telerik.com/anoceSux
Я просто получил доступ к «модели» редактируемого элемента, и если он считается новым, то меняю заголовок, чтобы создать или иным образом мы знаем, что это элемент, который существует, и поэтому просто поместите правку с названием продукта в заголовке.
Что касается того, что ваш API не перезагружает сетку с новыми данными, то это потому, что вы возвращаете view
из его внешнего вида, а не ожидаемый JSON
объект, который сетка ищет либо в форма объекта DataRequestResult или каким бы образом вы не отобразили свои данные. Предполагая, что вы отправляете / привязываете объект DataSourceRequest к контроллеру API, вы должны возвращать что-то вроде этого:
public JsonResult SomeAction([DataSourceRequest] DataSourceRequest request, T Model){
..do some things here.......
return Json(model.ToDataSourceResult(request, ModelState));
}
где T
- ваша модель обновляемого / создаваемого элемента