<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    grid

    grid

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      78 Posts :: 0 Stories :: 62 Comments :: 0 Trackbacks

    #

    CRUD之:行內表單編輯
                
               

    參考示例CRUD之:行內表單編輯
                
               

    一:創建編輯表單

    <div id="editForm1" style="display:none;padding:5px;position:relative;">
        <input class="mini-hidden" name="id"/>
        <table style="width:100%;">
            <tr>
                <td style="width:80px;">員工帳號:</td>
                <td style="width:150px;"><input name="loginname" class="mini-textbox" /></td>
                <td style="width:80px;">姓名:</td>
                <td style="width:150px;"><input name="name" class="mini-textbox" /></td>
                <td style="width:80px;">薪資:</td>
                <td style="width:150px;"><input name="salary" class="mini-textbox" /></td>
            </tr>
            <tr>
                <td>性別:</td>
                <td><input name="gender" class="mini-combobox" data="Genders"/></td>
                <td>年齡:</td>
                <td><input name="age" class="mini-spinner" minValue="0" maxValue="200" value="25"  /></td>
                <td>出生日期:</td>
                <td><input name="birthday" class="mini-datepicker" /></td>
            </tr>
            <tr>
                <td style="text-align:right;padding-top:5px;padding-right:20px;" colspan="6">
                    <a class="Update_Button" href="javascript:updateRow();">Update</a> 
                    <a class="Cancel_Button" href="javascript:cancelRow();">Cancel</a>
                </td>                
            </tr>
        </table>
    </div>
    
             

    二:嵌入詳細行

     //顯示行詳細
    grid.hideAllRowDetail();
    grid.showRowDetail(row);
    //將editForm元素,加入行詳細單元格內
    var td = grid.getRowDetailCellEl(row);
    td.appendChild(editForm);
    editForm.style.display = "";
              

    三:加載表單

    var form = new mini.Form("editForm1");
    if (grid.isNewRow(row)) {    
        form.reset();
        } else {    
            form.loading();    
            $.ajax({        
                url: "../data/DataService.aspx?method=GetEmployee&id=" + row.id,        
                success: function (text) {            
                    var
    o = mini.decode(text);            
                    form.setData(o); form.unmask();        
               }     
         });
    }
               

    四:提交表單

    var form = new mini.Form("editForm1");
    var o = form.getData(); grid.loading("保存中,請稍后......");
    var json = mini.encode([o]);
    $.ajax({     
        url: "../data/DataService.aspx?method=SaveEmployees",    
        data: { employees: json },    
        success: function (text) {        
            grid.reload();    
        },
        error: function (jqXHR, textStatus, errorThrown) {        
            alert(jqXHR.responseText);    
        }
    });
    posted @ 2012-09-17 21:16 nikofan 閱讀(1825) | 評論 (0)編輯 收藏

    CRUD之:行編輯
                
                         

    參考示例CRUD之:行編輯         

    一:創建單元格編輯器

    <div id="datagrid1" class="mini-datagrid" style="width:700px;height:280px;"
    url="../data/DataService.aspx?method=SearchEmployees">
        <div property="columns">
            <div name="action" width="120" headerAlign="center" align="center" renderer="onActionRenderer" cellStyle="padding:0;">#</div>
            <div field="loginname" width="120" headerAlign="center" allowSort="true">員工帳號
                <input property="editor" class="mini-textbox" />
            </div>
            <div field="gender" width="100" allowSort="true" renderer="onGenderRenderer" align="center" headerAlign="center">性別
                <input property="editor" class="mini-combobox" style="width:100%;" data="[{id:1,text:'男'}, {id:2, text: '女'}]"/>
            </div>
            <div field="age" width="100" allowSort="true">年齡
                <input property="editor" class="mini-spinner" minValue="0" maxValue="200" value="25" style="width:100%;"/>
            </div>
            <div field="birthday" width="100" allowSort="true" dateFormat="yyyy-MM-dd">出生日期
                <input property="editor" class="mini-datepicker" style="width:100%;"/>
            </div>
            <div field="createtime" width="100" headerAlign="center" dateFormat="yyyy-MM-dd" allowSort="true">創建日期</div>
        </div>
    </div>
    比如:mini-textbox的property為"editor",表示是此列的編輯器。            

    二:編輯操作

    開始編輯行:
    grid.beginEditRow(row);

    取消編輯:
    grid.cancelEdit();
    
    提交編輯數據:
    var rowData = grid.getEditRowData(row);
    grid.loading("保存中,請稍后......");
    var json = mini.encode([rowData]);
        $.ajax({
        url: "../data/DataService.aspx?method=SaveEmployees",
        data: { employees: json },
        success: function (text) {
            grid.reload();
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(jqXHR.responseText);
        }
    });
    
    posted @ 2012-09-13 18:45 nikofan 閱讀(2374) | 評論 (0)編輯 收藏

    CRUD之:單元格編輯
                
                         

    參考示例單元格編輯


    一:創建單元格編輯器
    <div id="datagrid1" class="mini-datagrid" style="width:800px;height:280px;" 
        url="../data/AjaxService.aspx?method=SearchEmployees" idField="id"
        allowResize="true" pageSize="20" 
        allowCellEdit="true" allowCellSelect="true" multiSelect="true">
        <div property="columns">
            <div type="checkcolumn"></div>            
            <div field="loginname" width="120" headerAlign="center" allowSort="true">員工帳號
                <input property="editor" class="mini-textbox" style="width:100%;"/>
            </div>                
            <div field="gender" width="100" renderer="onGenderRenderer" align="center" headerAlign="center">性別
                <input property="editor" class="mini-combobox" style="width:100%;" data="Genders"/>                
            </div>
            <div field="age" width="100" allowSort="true" >年齡
                <input property="editor" class="mini-spinner" minValue="0" maxValue="200" value="25" style="width:100%;"/>
            </div>
            <div field="birthday" width="100" allowSort="true" dateFormat="yyyy-MM-dd">出生日期
                <input property="editor" class="mini-datepicker" style="width:100%;"/>
            </div>    
            <div field="remarks" width="120" headerAlign="center" allowSort="true">備注
                <input property="editor" class="mini-textarea" style="width:100%;" minHeight="80"/>
            </div>                                 
            <div field="createtime" width="100" headerAlign="center" dateFormat="yyyy-MM-dd" allowSort="true">創建日期</div>
        </div>
    </div>
    設置allowCellEdit和allowCellSelect后,表格為單元格編輯模式。            

    二:編輯操作          

    增加行:

    function addRow() {
        var newRow = { name: "New Row" };
        grid.addRow(newRow, 0);
    }
    
    刪除行:
    function removeRow() {
         var rows = grid.getSelecteds();    
         if (rows.length > 0) {
              grid.removeRows(rows,
    true);    
         }
    }           

    保存數據:

    function saveData() {
        //獲得增加、刪除、修改的記錄集合
        var data = grid.getChanges();
        var json = mini.encode(data);
        grid.loading("保存中,請稍后......");        
        $.ajax({
            url: "../data/AjaxService.aspx?method=SaveChangedEmployees",
            data: { data: json },
            type: "post",
            success: function (text) {
                grid.reload();
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(jqXHR.responseText);
            }
        });
    }
    
              

    三:服務端處理

    public void SaveChangedEmployees()
    {
        String json = Request["data"];
        ArrayList rows = (ArrayList)PluSoft.Utils.JSON.Decode(json);
    
        foreach (Hashtable row in rows)
        {
            //根據記錄狀態,進行不同的增加、刪除、修改操作
            String state = row["_state"] != null ? row["_state"].ToString() : "";
            if(state == "added")
            {
                row["createtime"] = DateTime.Now;
                new TestDB().InsertEmployee(row);
            }
            else if (state == "removed" || state == "deleted")
            {
                String id = row["id"].ToString();
                new TestDB().DeleteEmployee(id);
            }
            else if (state == "modified")
            {
                new TestDB().UpdateEmployee(row);
            }
        }
    }
    
           
    posted @ 2012-09-12 18:55 nikofan 閱讀(2099) | 評論 (0)編輯 收藏

    下面實現一個最典型主框架布局。
    效果圖如下:
                               

    一:創建界面布局

    <!--Layout-->
    <div id="layout1" class="mini-layout" style="width:100%;height:100%;">
        <div class="header" region="north" height="70" showSplit="false" showHeader="false">
        </div>
        <div title="south" region="south" showSplit="false" showHeader="false" height="30" >    
        </div>
        <div title="center" region="center" bodyStyle="overflow:hidden;">    
            <!--Splitter-->
            <div class="mini-splitter" style="width:100%;height:100%;" borderStyle="border:0;">
                <div size="180" maxSize="250" minSize="100" showCollapseButton="true">
                    
                </div>
                <div showCollapseButton="false">
                    
                </div>        
            </div>
        </div>
    </div>    
    其中,Layout實現上、中、下布局;Splitter實現左、右折疊布局。                      

    二:創建OutlookTree           

    創建OutlookTree控件,放入Splitter左側區域,作為功能操作樹。

    <!--OutlookTree-->
    <div id="leftTree" class="mini-outlooktree" url="../data/outlooktree.txt" onnodeselect="onNodeSelect"
        textField="text" idField="id" parentField="pid">
    </div>          

    url從服務端返回JSON格式如下:

    [
        {id: "user", text: "用戶管理"},        
        {id: "lists", text: "Lists", pid: "user" },            
        {id: "datagrid", text: "DataGrid", pid: "lists"},            
        {id: "tree", text: "Tree" , pid: "lists"},
        ......
    ]
    通過 "id" 和 "pid" 組成樹形結構,在創建OutlookTree時注意設置 "idField" 和 "parentField" 。           

    三:創建Tabs         

    創建Tabs控件,放入Splitter右側區域,作為主操作區域。

    <!--Tabs-->
    <div id="mainTabs" class="mini-tabs bg-toolbar" activeIndex="0" style="width:100%;height:100%;"      
        bodyStyle="border:0;background:white;"      
    >        
        <div title="首頁" url="../../docs/api/overview.html" >        
        </div>
    </div>                      

    四:監聽處理"nodeselect"事件

    function showTab(node) {
        var tabs = mini.get("mainTabs");            
        var id = "tab$" + node.id;
        var tab = tabs.getTab(id);
        if (!tab) {
            tab = {};
            tab.name = id;
            tab.title = node.text;
            tab.showCloseButton = true;
            tab.url = node.url;
            tabs.addTab(tab);
        }
        tabs.activeTab(tab);
    }        
    
    function onNodeSelect(e) {
        var node = e.node;
        var isLeaf = e.isLeaf;            
    
        if (isLeaf) {
            showTab(node);
        }
    }
    參考示例:                       
    posted @ 2012-09-11 20:11 nikofan 閱讀(3354) | 評論 (0)編輯 收藏

    表單開發包括:布局、驗證、加載、提交、清除、重置等。
    效果圖如下:
                       
          
    表單布局
    使用HTML Table標簽實現任意豐富的表單布局:
    <table class="form-table" border="0" cellpadding="1" cellspacing="2">
         <
    tr>
             <
    td class="form-label" style="width:60px;">姓名:</td
             <
    td style="width:150px">
                <
    input name="name" class="mini-textbox" /> </td>
             <
    td class="form-label" style="width:60px;">地址:</td>        
             <
    td style="width:150px">
                 <
    input name="addr" class="mini-textbox" /> </td>      
         </
    tr>
         <
    tr>
             <
    td class="form-label">性別:</td>
             <
    td >
                 <
    input name="gender" class="mini-radiobuttonlist" data="[{id: 1, text: '男'}, {id: 2, text: '女'}]"/> </td>
             <
    td class="form-label">年齡:</td>        
             <
    td > <input name="age" class="mini-spinner" /> </td>
         </
    tr>
         <
    tr>
             <
    td class="form-label">備注:</td>        
             <
    td colspan="3" >            
                 <
    input name="remarks" class="mini-textarea" style="width:343px;height:60px;"/></td>
         </
    tr>
    </
    table>
                          
    數據驗證
    監聽處理控件的"validation"事件,自定義驗證規則和錯誤描述信息:
    <input id="username" name="username" onvalidation="onUserNameValidation" class="mini-textbox" required="true" />
    function onUserNameValidation(e) {
        if (e.isValid) { 
            if (isEmail(e.value) == false) {
                e.errorText = "必須輸入郵件地址";            
                e.isValid = false;
           }
        }
    }
    使用mini.Form組件對多個控件進行驗證:   
    var form = new mini.Form("#form1");
    form.validate();           

    加載表單

    $.ajax({    
       
    url: "../data/FormService.aspx?method=LoadData",  
       
    type: "post",
       
    success: function (text) {        
            var data = mini.decode(text); //反序列化成對象        
           
    form.setData(data); //設置多個控件數據 
            }
    });          

    提交表單

    //提交表單數據
    var form = new mini.Form("#form1"); var data = form.getData(); //獲取表單多個控件的數據 var json = mini.encode(data); //序列化成JSON $.ajax({ url: "../data/FormService.aspx?method=SaveData", type: "post", data: { submitData: json }, success: function (text) { alert("提交成功,返回結果:" + text); } });
     清除表單
       form.clear();
     
    重置表單
      
    form.reset();
                       

    參考示例:       

    posted @ 2012-09-10 21:02 nikofan 閱讀(8023) | 評論 (3)編輯 收藏

    CRUD包括:查詢、編輯、新增、刪除等數據操作。                  

    效果圖如下:

                                            
                                                   

    一:創建DataGrid

                          

    首先,我們創建一個數據表格:

    <div id="datagrid1" class="mini-datagrid" style="width:800px;height:280px;"
        url="../data/AjaxService.aspx?method=SearchEmployees" idField="id"
        allowResize="true" pageSize="20"
        allowCellEdit="true" allowCellSelect="true" multiSelect="true">
        <div property="columns">
            <div type="checkcolumn"></div>
            <div field="loginname" width="120" headerAlign="center" allowSort="true">員工帳號
                <input property="editor" class="mini-textbox" style="width:100%;"/>
            </div>
            <div field="gender" width="100" renderer="onGenderRenderer" align="center" headerAlign="center">性別
                <input property="editor" class="mini-combobox" style="width:100%;" data="Genders"/>
            </div>
            <div field="age" width="100" allowSort="true" >年齡
                <input property="editor" class="mini-spinner" minValue="0" maxValue="200" value="25" style="width:100%;"/>
            </div>
            <div field="birthday" width="100" allowSort="true" dateFormat="yyyy-MM-dd">出生日期
                <input property="editor" class="mini-datepicker" style="width:100%;"/>
            </div>
            <div field="remarks" width="120" headerAlign="center" allowSort="true">備注
                <input property="editor" class="mini-textarea" style="width:100%;" minHeight="80"/>
            </div>
            <div field="createtime" width="100" headerAlign="center" dateFormat="yyyy-MM-dd" allowSort="true">創建日期</div>
         </div>
    </div>
    

    二:查詢記錄

    function search() {
        var key = document.getElementById("key").value;
        grid.load({ key: key });
    }
    

    使用load方法,可以傳遞更多、任意復雜的查詢條件。后臺通過Request["key"]方式獲取和處理。

    三:新增記錄

    function addRow() {
        var newRow = { name: "New Row" };
        grid.addRow(newRow, 0);
    }
    

    創建新記錄時,可以初始化屬性,比如newRow.age = 20;

    四:刪除記錄

    function removeRow() {
        var rows = grid.getSelecteds();
        if (rows.length > 0) {
            grid.removeRows(rows, true);
        }
    }
    

    選擇多條記錄后,可以一次性刪除。

    五:編輯記錄

    用戶可以點擊單元格,進行編輯操作。

    編輯器是在定義列的時候指定的,例如:

    <div field="loginname" width="120" headerAlign="center" allowSort="true">員工帳號
        <input property="editor" class="mini-textbox" style="width:100%;"/>
    </div>
    

    這里的property聲明,此textbox作為列的編輯器對象。

    五:提交保存

    在進行多次增加、刪除、修改操作后,一次性提交保存到后臺。

    function saveData() {
        var data = grid.getChanges();
        var json = mini.encode(data);
        grid.loading("保存中,請稍后......");
        $.ajax({
            url: "../data/AjaxService.aspx?method=SaveChangedEmployees",
            data: { data: json },
            type: "post",
            success: function (text) {
                grid.reload();
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(jqXHR.responseText);
            }
        });
    }
    

      DataGrid的getChanges方法,可以直接獲取增加、刪除、修改的記錄數據。 數據狀態位"_state"為"added"/"removed"/"modified"。

    六:查詢處理(服務端)

    當grid調用load方法時,會將查詢條件發送到服務端。服務端使用Request對象獲得查詢條件后,調用業務層方法,返回結果。代碼如下:

    public void SearchEmployees()
    {
        //查詢條件
        string key = Request["key"];
        //分頁
        int pageIndex = Convert.ToInt32(Request["pageIndex"]);
        int pageSize = Convert.ToInt32(Request["pageSize"]);
        //字段排序
        String sortField = Request["sortField"];
        String sortOrder = Request["sortOrder"];
        //業務層:數據庫操作
        Hashtable result = new TestDB().SearchEmployees(key, pageIndex, pageSize, sortField, sortOrder);
        //JSON
        String json = PluSoft.Utils.JSON.Encode(result);
        Response.Write(json);
    }
    

    經過查詢,獲得數據后,將數據序列化成JSON字符串,然后用Response返回。

    六:保存處理(服務端)

    獲得數據后,遍歷記錄,根據記錄的狀態位"_state",分別進行增加、刪除、修改操作。代碼如下:

    public void SaveChangedEmployees()
    {
        String json = Request["data"];
        ArrayList rows = (ArrayList)PluSoft.Utils.JSON.Decode(json);
        foreach (Hashtable row in rows)
        {
            //根據記錄狀態,進行不同的增加、刪除、修改操作
            String state = row["_state"] != null ? row["_state"].ToString() : "";
            if(state == "added")
            {
                row["createtime"] = DateTime.Now;
                new TestDB().InsertEmployee(row);
            }
            else if (state == "removed" || state == "deleted")
            {
                String id = row["id"].ToString();
                new TestDB().DeleteEmployee(id);
            }
            else if (state == "modified")
           {
                new TestDB().UpdateEmployee(row);
            } 
        } 
    }                

    參考示例:      

    posted @ 2012-09-06 17:28 nikofan 閱讀(12234) | 評論 (2)編輯 收藏

    我們開始編寫第一個MiniUI程序,代碼如下:
    <!DOCTYPE html />
    <html>
    <head>
        <title> Hello MiniUI!</title>
        <!--jQuery js-->
        <script src="../jquery.js" type="text/javascript"></script>
        <!--MiniUI-->
        <link href="../themes/default/miniui.css" rel="stylesheet" type="text/css" />
        <script src="../miniui.js" type="text/javascript"></script>
    </head>
    <body>
        <input id="helloBtn" class="mini-button" text="Hello" onclick="onHelloClick"/>
        <script type="text/javascript">
            function onHelloClick(e) {
                var button = e.sender;
                mini.alert("Hello MiniUI!");
            }
        </script>
    </body>
    </html>
    


     Note請注意相關javascript和css的路徑是否正確。
     MiniUI是基于jQuery開發的javascript控件庫,所以依賴jquery.js。jQuery版本1.4+即可。
     效果圖如下:
       
        


        本例注意點如下:       
    • 控件聲明:class="mini-button"      
    • 屬性設置:text="Hello"       
    • 事件綁定:onclick="onHelloClick"      
    • 事件處理函數:onHelloClick的e是事件對象,e.sender是事件激發者,本例中是button。

        運行示例               

    posted @ 2012-09-05 17:13 nikofan 閱讀(2850) | 評論 (0)編輯 收藏

    產品下載地址:http://www.miniui.com/download。                  

    Note:請根據不同的服務端后臺,選擇下載不同后臺版本的MiniUI。        
                           

    下載后,解壓縮。                    

    會有如下文件結構:
                           

    各目錄文件解釋如下:                           

    • dbsql:示例數據庫sql文件。                           
    • demo:頁面示例。                       
    • docs:api文檔、開發指南。                           
    • scripts/miniui:MiniUI產品的javascript和css。                           
    • scripts/miniui/locale:語言資源文件。                           
    • scripts/miniui/themes:多套皮膚樣式。                           
    • index.html:開發包導航頁面。                           
    • miniui_commercial_license.doc:授權說明文檔。                          
    • miniui_tryform.doc:試用申請表文檔。                          
    • 安裝部署.txt:安裝部署說明文檔。                        
                             

    Note:開發者只需要引用jquery.js、miniui.js、miniui.css即可。                       

    為更好演示DataGrid相關示例,以及提供可參考的數據交互代碼,我們提供了示例數據庫和一定的服務端代碼。
                           

    標準頁面模板如下:

    <!DOCTYPE html />
    <html>
    <head>
        <title>Hello MiniUI!</title>
        <!--jQuery js-->
        <script src="../jquery.js" type="text/javascript"></script>
        <!--MiniUI-->
        <link href="../themes/default/miniui.css" rel="stylesheet" type="text/css" />
        <script src="../miniui.js" type="text/javascript"></script>
    </head>
    <body>
    
    </
    body> </html>
    posted @ 2012-09-04 12:34 nikofan 閱讀(5491) | 評論 (0)編輯 收藏

    僅列出標題
    共8頁: 上一頁 1 2 3 4 5 6 7 8 
    主站蜘蛛池模板: 久久精品国产亚洲夜色AV网站| 亚洲中文精品久久久久久不卡| h视频在线观看免费网站| 亚洲日本va一区二区三区| 亚洲国产精品尤物YW在线观看 | 亚洲av无码有乱码在线观看| 久久精品国产亚洲Aⅴ香蕉| 国产精品99精品久久免费| 亚洲人成未满十八禁网站| 国产精品亚洲玖玖玖在线观看| 久久久久久毛片免费播放| 香港经典a毛片免费观看看| 亚洲国产精品第一区二区| 国产精品嫩草影院免费| 亚洲免费视频在线观看| 国产亚洲欧美在线观看| 久久精品国产亚洲AV麻豆~| 热久久精品免费视频| 三年片在线观看免费观看大全动漫| 精品国产成人亚洲午夜福利| 国产V亚洲V天堂A无码| 青青草国产免费久久久91| 最近免费中文字幕MV在线视频3| 亚洲狠狠婷婷综合久久| 亚洲情a成黄在线观看动漫尤物| 波多野结衣中文一区二区免费| 69精品免费视频| 国产在线播放线91免费| 国产亚洲精品第一综合| 亚洲一级毛片免费观看| 国产成人A人亚洲精品无码| 亚洲AⅤ视频一区二区三区| 国产免费看JIZZ视频| 久久一本岛在免费线观看2020| 国产亚洲Av综合人人澡精品| 亚洲国产高清视频在线观看| 亚洲国产无套无码av电影| 亚洲精品国产日韩无码AV永久免费网| 国产美女在线精品免费观看| 99精品视频免费观看| 国产色无码精品视频免费|