2014-02-19 34 views
0

下面是我的下拉列表的代碼。加入後停止重新加載下拉列表

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

我使用的形式edit.I我insert.But後重裝電網問題插入數據時我嘗試添加另一個我的下拉菜單越來越refreashed.I後想要的下拉列表中選擇值將是先前選擇的值。我不想在第二次添加時更改下拉選擇值。

回答

1

防止從dataUrl重新加載數據的最簡單方法是在服務器響應中設置Cache-Control HTTP標頭。例如在服務器響應中設置Cache-Control: max-age=60將防止在60秒內從服務器重新加載數據。對於ASP.NET MVC,您可以使用CacheControl屬性(請參閱DurationLocation屬性)。

另一個替代方案是動態設置editoptions.value而不是使用editoptions.dataUrl。例如,可以將構建editoptions.value所需的信息包括爲用於填充網格的服務器的標準響應的擴展。可以使用beforeProcessing來處理部分數據。你會在下面的冷答案中找到相應的例子:this one,this one,this one,this one,this one和其他。簡而言之,描述了創建全動態網格的可能場景之一。

+0

非常感謝你。我們很幸運,你們在SO尋求幫助 –

+0

@janina:不客氣! – Oleg

+0

@janina:看看[答案](http://stackoverflow.com/a/21901410/315935)。它涉及相同的主題並描述不同的實施選項。 – Oleg