天天看點

改進ligerUI的Grid的全選功能

ligerUI的Grid的全選隻是一頁的,不是真正的全選,下面改進:

要有兩個開關,一個是記憶功能開關memory,一個是全選中開關allcheck;

一個數組checkedCustomer.

改進ligerUI的Grid的全選功能

三個方法:

改進ligerUI的Grid的全選功能
改進ligerUI的Grid的全選功能
改進ligerUI的Grid的全選功能
改進ligerUI的Grid的全選功能
//傳三個參數,allback,memory,checkedCustomer
        function f_onCheckAllRow()
        {
            if(allcheck == 0){
                allcheck = 1;//如果點了全選,就不用記憶了,直接傳這個參數到控制器,意味着之前取全部的資料?
                memory = 0;
                checkedCustomer = [];//如果點了全選,那麼要記憶在全選下點選了反選的
            }else if(allcheck == 1){
                allcheck = 0;
                memory = 1;
                checkedCustomer = [];//記憶數組清空是關鍵!
            }

        }

        function findCheckedCustomer(ID)
        {
            //console.log(checkedCustomer);
            for(var i =0;i<checkedCustomer.length;i++)
            {
                if(checkedCustomer[i] == ID) return i;
            }
            return -1;
        }
        function addCheckedCustomer(ID)
        {
            if(findCheckedCustomer(ID) == -1)
                checkedCustomer.push(ID);
        }
        function removeCheckedCustomer(ID)
        {
            var i = findCheckedCustomer(ID);
            if(i==-1) return;
            checkedCustomer.splice(i,1);
        }
        function f_isChecked(rowdata)
        {
            var f_flag=0;
            if(allcheck == 1){
                if(memory == 1 ){
                    if (findCheckedCustomer(rowdata.ID) == -1){
                        f_flag = 1;
                    }else{
                        f_flag = 0;
                    }
                }else{
                    f_flag = 1;
                }
            }else if(memory == 1 ){
                if (findCheckedCustomer(rowdata.ID) == -1){
                    f_flag = 0;
                }else{
                    f_flag = 1;
                }
            }

            return f_flag_ischecked(f_flag);
        }
        function f_flag_ischecked(f_flag) {
            if(f_flag == 1 ){
                return true;
            }else
                return false;

        }
        function f_onCheckRow(checked, data)
        {
            if(allcheck == 1){
                memory = 1;
                if (!checked) addCheckedCustomer(data.ID);
                else removeCheckedCustomer(data.ID);
            }else{
                if (checked) addCheckedCustomer(data.ID);
                else removeCheckedCustomer(data.ID);
            }
        }
           

當然,還要将allback、memory、checkedCustomer傳到要出來的頁面或控制器

還有,具體比如chekedCustomer要進行分割出來什麼的checkedCustomer.join(',')