輕松搞定 easyui datagrid 二次加載的問題(轉)


對於使用url方式的初學者,經常碰到重復請求的問題,這個問題的根源是因為一旦設置了url參數,Datagrid組件在實例化的時候就會做請求,如何避免二次加載這樣問題呢,個人覺得注意以下兩點基本就可以防止二次加載了。

  • 使用load和reload函數去動態加載數據,而不是選擇再次渲染組件,而再次渲染組件的目的僅僅是為了設置url,這得不償失,url的設置可以通過options方法獲取到組件實例的opts,然后在給opts.url重新賦值即可;
  • 用class方式注冊組件,一般只將屬性寫在DOM里,而事件通常還是用 javascipt調用datagrid構造函數注冊,這個過程中就發生了二次請求:第一次是class方式實例化的時候,第二次是javascript 注冊事件的時候。所以在要綁定事件的情況下,索性就不要使用class方式注冊了。
  • 說這么多其實上面的都是扯淡;直接上列子:<table id="materialData" class="easyui-datagrid" data-options="toolbar:'#tb'" ></table>把這里的class去掉就行了,改為:
    <table id="materialData"  data-options="toolbar:'#tb'" ></table>,因為我們在js里面是這樣寫的:$('#materialData').datagrid({});所以body里面不用再寫他的class,否則在頁面加載《table》時候就回去調用一次,而在js里面還會去調用!
  • 先寫這么多給自己理解吧,以后發現理解的不對了再補充!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM