У меня есть сетка telerik (t-grid, а не kendo или rad).Я должен обновить все значения столбца со стороны клиента.
Я спрашиваю значение из всплывающего окна, а затем перебираю сетку, чтобы обновить его.Но я что-то упускаю, потому что когда я нажимаю сохранить, я теряю значение.НО, если я обновлю вручную даже другую ячейку, то получу сохраненное значение.
Какой-то код:
JS, который обновляет сетку:
function OKButton()
{
var datepicker = $("#nuovaSpesa").val();
// Lato dati
var grid = $("#ZNOTASPESE_T").data("tGrid")
var data = grid.data;
// Lato struttura
var tables = document.getElementsByName('ZNOTASPESE_T_Table');
var rows = tables[0].getElementsByTagName('tr');
//Ciclo
if(data != null)
{ // will be null if grid hasn't bound yet
var rowCount = data.length;
for(var i=0; i<rowCount; i++)
{
//Update the grid value
data[i].D_REG = datepicker;
//Structure: mark the cell as dirty
rows[i+1].cells[5].innerHTML = "<span class='t-dirty'></span>" + datepicker;
//(Ajax Binding) How to mark the rows as "
CloseDialog();
}
Этовызов контроллера с помощью кнопки сохранения:
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public ActionResult update_ZNOTASPESE_T([Bind(Prefix = "updated")]IEnumerable<SAP_ZNOTASPESE_T> updatedRows, object model, string company)
{
NSDataContext nsDB = new NSDataContext();
if (updatedRows != null)
{
foreach (var row in updatedRows)
{
var target = nsDB.SAP_ZNOTASPESE_T.Single(p => p.PROG == row.PROG);
if (target != null)
{
target.D_DOC = row.D_DOC;
target.T_DOC = row.T_DOC;
target.SOC = row.SOC;
target.D_REG = row.D_REG;
target.RIFER = row.RIFER;
nsDB.SubmitChanges();
}
}
}
ViewData["company"] = company;
var ids = ((string[])model)[0].Split(',');
return View(new GridModel(nsDB.SAP_ZNOTASPESE_T.Where(n => ids.Contains(n.ID_NS.ToString()))));
}
Я полагаю, что материнский находится в этом: [Bind (Prefix = "updated")].Как установить строку как «обновленную».
Заранее спасибо !!!
Кристиан