以下是我的下拉列表的代码。
{
name: 'ClassId', index: 'ClassId', align: 'center',editable: true, edittype: 'select',
editoptions: {
dataUrl:'@Url.Action("GetAllClasses", "Class", new { Area = "Curriculums"})',
buildSelect: function (data) {
var response, s = '<select>', i;
response = jQuery.parseJSON(data);
//s += '<option value="0">--Select Class--</option>';
if (response && response.length) {
$.each(response, function (i) {
s += '<option value="' + this.Id + '">' + this.ClassName + '</option>';
});
}
return s + '</select>';
}
}
},
我正在使用表单编辑。我在插入后重新加载网格。但问题是在我尝试添加另一个时插入数据后,我的下拉列表正在重新刷新。我希望下拉选择的值将是先前选择的值。我不想在第二次添加时更改下拉选择值。
答案 0 :(得分:1)
阻止从dataUrl
重新加载数据的最简单方法是在服务器响应中设置Cache-Control HTTP标头。例如,在服务器响应中设置Cache-Control: max-age=60
将阻止在60秒内从服务器重新加载数据。对于ASP.NET MVC,您可以使用CacheControl
属性(请参阅Duration
和Location
属性)。
另一种选择是动态设置editoptions.value
而不是使用editoptions.dataUrl
。例如,可以包括构建editoptions.value
所需的信息,作为服务器填充网格的标准响应的扩展。可以使用beforeProcessing
来处理数据的一部分。您可以在以下冷答案中找到相应的示例:this one,this one,this one,this one,this one等。 The answer简要描述了创建完整动态网格的可能方案之一。