添加后停止重新下载下拉列表

时间:2014-02-19 08:59:40

标签: jqgrid

以下是我的下拉列表的代码。

  {
 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>';
                 }
             }
          },

我正在使用表单编辑。我在插入后重新加载网格。但问题是在我尝试添加另一个时插入数据后,我的下拉列表正在重新刷新。我希望下拉选择的值将是先前选择的值。我不想在第二次添加时更改下拉选择值。

1 个答案:

答案 0 :(得分:1)

阻止从dataUrl重新加载数据的最简单方法是在服务器响应中设置Cache-Control HTTP标头。例如,在服务器响应中设置Cache-Control: max-age=60将阻止在60秒内从服务器重新加载数据。对于ASP.NET MVC,您可以使用CacheControl属性(请参阅DurationLocation属性)。

另一种选择是动态设置editoptions.value而不是使用editoptions.dataUrl。例如,可以包括构建editoptions.value所需的信息,作为服务器填充网格的标准响应的扩展。可以使用beforeProcessing来处理数据的一部分。您可以在以下冷答案中找到相应的示例:this onethis onethis onethis onethis one等。 The answer简要描述了创建完整动态网格的可能方案之一。