1. 程式人生 > >GridView支援複製與貼上

GridView支援複製與貼上

        function getClipboard() {
            if (window.clipboardData) {
                return (window.clipboardData.getData('Text'));
            }
            return null;
        }

        $(function () {

            //找到所有需要編輯的單元格
            var numTd = $("#GridView1 tbody td");
            //表格總行數
            var trCount = $("#GridView1 tbody tr").length;

            //給這些單元格註冊Click事件
            numTd.click(function () {
                //單元格
                var currTd = $(this);
                //當前行
                var row = $(this).parent("tr").prevAll().length;
                //當前列
                var col = $(this).prevAll().length;
                //輸入框
                var inputObj = $(":input[type='text']", currTd);
                //使文字框的內容新增後就被選中(trigger可以執行javascript中的方法)
                inputObj.trigger("focus").trigger("select");
                //處理文字框上回車和ESC按鍵的操作
                inputObj.keyup(function (event) {
                    //獲取當前按下的鍵盤的鍵值
                    //處理貼上板資料,Ctrl+V
                    if (event.ctrlKey && event.keyCode == 86) {
                        var clipStr = getClipboard();
                        if (clipStr) {
                            var len = clipStr.split("\n"); //獲取行數
                            if (len && len.length > 1) {
                                for (var i = 0; i < len.length - 1; i++) {
                                    if (i + row < trCount) {
                                        $(":input[type='text']", "#GridView1 tbody tr:eq(" + (i + row) + ") td:eq(" + col + ")").val(len[i]);
                                    }
                                }
                            }
                            else {
                                inputObj.val(clipStr);
                            }
                        }
                    }
                });
            });
        })