"; page_control_list = this.str_page_control_template.split(""); strBuf.Append("\n" + page_control_list[0]); strBuf.Append("\n" + page_control_list[1]); for (var i = 1; i <= this.dt._MaxPageNumber; i++) { var _buf = page_control_list[2]; _buf = _buf.ReplaceAll("%PageNum%", i); strBuf.Append("\n" + _buf); } strBuf.Append("\n" + page_control_list[3]); strBuf.replace("%this.str_page_first%", this.str_page_first); strBuf.replace("%this.str_page_up%", this.str_page_up); strBuf.replace("%this.str_page_down%", this.str_page_down); strBuf.replace("%this.str_page_last%", this.str_page_last); strBuf.replace("%this.str_page_list%", this.str_page_list); strBuf.replace("%this.str_page_size%", this.str_page_size); strBuf.replace("%this.str_total_record%", this.str_total_record); strBuf.replace("%TotalRecord%", this.dt.MaxRow()); strBuf.replace("%ControlName%", this.control_name); strBuf.replace("%PageSize%", this.dt._PageSize); return (strBuf); } /************************MARK******************************/ this.GetPageDataGrid = function () { var i, strnum, j, rowCounter; var strBuf = new StringBuilder(); var row, start, buf, strField, p_row; var dt_row = 0, dt_col = 0; var start_row = 0, end_row = 0; var DataGrid = new Array(); var col_list = new Array(); var field_name_list = new Array(); j = 0; rowCounter = 1; start_row = (this.dt._PageNumber - 1) * this.dt._PageSize; if (start_row < 0) start_row = 0; end_row = start_row + this.dt._PageSize; //alert("end_row = " + end_row); if (end_row > this.dt.MaxRow()) end_row = this.dt.MaxRow(); for (dt_col = 0; dt_col < this.dt.getFieldCount(); dt_col++) { var FieldName = this.dt.getFieldName(dt_col); var _col = this.dt.SearchFieldName(FieldName); field_name_list.push(FieldName); col_list.push(_col); } if (this.strTemplate == "") this.strTemplate = this.CreateTemplate(); if (this.strSplit == "") this.strSplit = ""; this.strTemplate = this.strTemplate.ReplaceAll("%ControlName%", this.control_name); DataGrid = this.strTemplate.split(this.strSplit); row = DataGrid.length - 3; strBuf.Append("\n" + DataGrid[0]); start = 2; buf = DataGrid[1]; strBuf.Append("\n" + buf); for (dt_row = start_row; dt_row < end_row; dt_row++) { buf = ""; p_row = j % row; buf = DataGrid[start + p_row]; buf = buf.ReplaceAll("%row%", dt_row); buf = buf.ReplaceAll("%show_row%", dt_row+1); // 雙色顯示 if (this.tr_dual_color) { if (dt_row % 2 == 1){ buf = buf.ReplaceAll("%class%", "class=\"" + this.tr_class2 + "\""); buf = buf.ReplaceAll("%color%", "bgcolor=\"" + this.tr_color2 + "\""); }else{ buf = buf.ReplaceAll("%class%", "class=\"" + this.tr_class1 + "\""); buf = buf.ReplaceAll("%color%", "bgcolor=\"" + this.tr_color1 + "\"");} } else buf = buf.ReplaceAll("%class%", "class=\"" + this.tr_class1 + "\""); for (dt_col = 0; dt_col < this.dt.getFieldCount(); dt_col++) { //var FieldName = this.dt.getFieldName(dt_col); //buf = buf.ReplaceAll("%" + FieldName + "%", this.dt.getRowValue(dt_row, FieldName)); var FieldName = field_name_list[dt_col]; var _col = col_list[dt_col]; var _value = this.dt.getRowValueByCol(dt_row, _col); var allow_edit = this.get_allow_edit(FieldName) ; if (this.flg_auto_breakline == 1 && allow_edit!="H" && this.settings.editable != 1) { try { _value = _value.ReplaceAll("&", "&"); _value = _value.ReplaceAll("<", "<"); _value = _value.ReplaceAll(">", ">"); _value = _value.ReplaceAll("\"", """); _value = _value.ReplaceAll("\n", "
"); } catch (e) {} } if (buf.indexOf("%" + FieldName + "_Source%") != -1) { _value += ""; if ( allow_edit=="H") buf = buf.ReplaceAll("%" + FieldName + "_Source%", FieldName); else buf = buf.ReplaceAll("%" + FieldName + "_Source%", _value.Left(500).ReplaceAll("
", "\n")); } if (this.max_cols != -1 && _value.length > this.max_cols && allow_edit!="H") { _value = _value.Left(this.max_cols) + " ..."; } // 使用者可自訂 before_td 函數在 oDataGrid 之前, 以客製化TD try {buf = before_td(this.dt,buf,FieldName, _value, dt_row);} catch(e) {}; buf = buf.ReplaceAll("%Cust_TD_" + FieldName + "%", "") // by thomas 數字向右對齊 var fieldType = this.dt.getFieldType(dt_col); switch (fieldType) { case "System.Decimal": case "System.Integer": case 'System.Double': case 'System.Int32': buf = buf.ReplaceAll("%TD_" + FieldName + "%", "align=right"); break; default: buf = buf.ReplaceAll("%TD_" + FieldName + "%", ""); } // 格式化字串 var str_format = this.get_format(FieldName) ; if (str_format != "") { _value = Format(_value, str_format ); } // 使用者可自訂 before_td 函數在 oDataGrid 之前, 以客製化TD // try {buf = before_value(dt,buf,FieldName,_value);} catch(e) {} this.before_display_value(this.dt,buf,FieldName,_value); // Grid 中可選 CheckBox if (FieldName == "_select") { var element_name = "Search._select" var element_param = "" element_param += " onblur=\"JavaScript:%ControlName%.td_onblur(%row%, '%ColumnName%', this.value);\""; element_param = element_param.ReplaceAll("%row%", dt_row); element_param = element_param.ReplaceAll("%ColumnName%", FieldName); element_param = element_param.ReplaceAll("%ControlName%", this.control_name); element_param += " size='1' "; element_param += " value='1' "; if (_value == "") var display_content = ""; else var display_content = "      " display_content = display_content.ReplaceAll("%name%", element_name + "_" + (dt_row+1).toString()); display_content = display_content.ReplaceAll("%element_param%", element_param); buf = buf.ReplaceAll("%" + FieldName + "%", display_content); } // Grid 中可選 radio if (FieldName == "_radio"){ var element_name = "Search._radio" var element_param = "" element_param += " onblur=\"JavaScript:%ControlName%.td_onblur(%row%, '%ColumnName%', this.value);\""; element_param += " onclick=\"JavaScript:event.cancelBubble=true;\""; //element_param += " onclick=\"JavaScript:cancelBubble();\""; element_param = element_param.ReplaceAll("%row%", dt_row); element_param = element_param.ReplaceAll("%ColumnName%", FieldName); element_param = element_param.ReplaceAll("%ControlName%", this.control_name); element_param += " size='1' "; var radioItem=this.dt.getValue("_radio").split(","); var display_content=""; var display_content2=""; for(var iit=0;iit" display_content += "" + _raTitle +"" display_content = display_content.ReplaceAll("%name%", element_name + "_" + (dt_row+1).toString()); display_content = display_content.ReplaceAll("%element_param%", element_param); display_content2 += display_content } buf = buf.ReplaceAll("%" + FieldName + "%", display_content2); } if (allow_edit == "1" && FieldName != "_select" && FieldName != "_radio") { var s_row = this.schema_dt.Search("NAME",FieldName); var element_name = this.schema_dt.getValueByRow(s_row, "ELE_NAME"); var element_type = this.schema_dt.getValueByRow(s_row, "ELE_TYPE"); var str_not_null = dt.getValueByRow(row, "NOT_NULL"); var str_url = this.schema_dt.getValueByRow(s_row, "URL"); var str_element_list = this.schema_dt.getValueByRow(s_row, "ELE_LIST"); var element_initialize = this.schema_dt.getValueByRow(s_row, "ELE_INIT"); var display_content = "" var element_param = ""; var form = new clsForm(); switch (element_type) { case "text": display_content = form.create_textbox(s_row, element_name , element_param, this.schema_dt, dt_row+1, this.control_name, _value, FieldName); break; case "select": case "checkbox": case "radiobutton": element_param += " onblur=\"JavaScript:%ControlName%.td_onblur(%row%, '%ColumnName%', this.value);\""; element_param = element_param.ReplaceAll("%row%", dt_row); element_param = element_param.ReplaceAll("%ColumnName%", FieldName); element_param = element_param.ReplaceAll("%ControlName%", this.control_name); element_param += " size='1' "; element_param += " value='" + _value + "' "; var _dt = this.schema_dt.getValueByRow(s_row , "DATA"); if (_dt == "" ) { if (element_type == "select") { var _dt = form.create_listbox(s_row, element_name, element_param, str_url, str_element_list, this.schema_dt, dt_row+1, this.control_name, _value, FieldName,true ); } if (element_type == "checkbox") { var _dt = form.create_checkbox(s_row, element_name, element_param, str_url, str_element_list, this.schema_dt, dt_row+1, this.control_name, _value, FieldName, true ); } if (element_type == "radiobutton") { var _dt = form.create_checkbox(s_row, element_name, element_param, str_url, str_element_list, this.schema_dt, dt_row+1, this.control_name, _value, FieldName ,true); } this.schema_dt.setValueByRow(s_row , "DATA", _dt); } if (element_type == "select") var display_content = _dt.getListBox(element_name+"_"+ (dt_row+1).toString(), element_param, "0", "1", str_not_null); if (element_type == "checkbox") var display_content = _dt.getCheckBox(element_name+"_"+ (dt_row+1).toString(), element_param, "0", "1", str_not_null); if (element_type == "radiobutton") var display_content = _dt.getRadioButton(element_name+"_"+ (dt_row+1).toString(), element_param, "0", "1", str_not_null); break; } display_content += " "; if (_value != "") { var t_func = function (__name, __value) { set_element_value(__name,__value); }; if (this.functions == null) this.functions = new Array(); if (this.functions_1 == null) this.functions_1 = new Array(); if (this.functions_2 == null) this.functions_2 = new Array(); this.functions.push(t_func); this.functions_1.push(element_name+ "_" + (dt_row+1).toString()); this.functions_2.push(_value); } if ( element_initialize != "") { if (this.functions_init == null) this.functions_init = new Array(); element_initialize = element_initialize.ReplaceAll("%element_name%", element_name+ "_" + (dt_row+1).toString()); element_initialize = element_initialize.ReplaceAll("%row%", (dt_row+1).toString()) this.functions_init.push(element_initialize); } if ( str_element_list != "" && element_type == "select") { var form_name = (element_name.substring(0,1) == "A") ? "o_AddNewForm" : "o_EditForm"; if (this.functions_init == null) this.functions_init = new Array(); var refresh = "%form%.form.refresh_listbox(\"" + element_name + "\"," + (dt_row+1).toString() + ");" refresh = refresh.ReplaceAll("%form%", form_name); this.functions_init.push(refresh); var elements = str_element_list.split(",") if (elements.length == 1) { var event_function = "add_element_event(\"%source_element_name%\", \"onchange\", function() {%form%.form.refresh_listbox(\"%element_name%\", %row%);});"; if (str_element_list.indexOf("AddNewDetail") >= 0 || str_element_list.indexOf("EditDetail") >= 0) { event_function = event_function.ReplaceAll("%source_element_name%", str_element_list + "_" + (dt_row+1).toString()); } else { event_function = event_function.ReplaceAll("%source_element_name%", str_element_list); } event_function = event_function.ReplaceAll("%element_name%", element_name); event_function = event_function.ReplaceAll("%row%", (dt_row+1).toString()); event_function = event_function.ReplaceAll("%form%", form_name); this.functions_init.push(event_function); } else if (elements.length >= 2) { // var event_function = "add_element_event(\"%source_element_name%\", \"onchange\", function() { debugger; %form%.form.refresh_listbox(\"%element_name%\", %row%);});"; var event_function = "add_element_event(\"%source_element_name%\", \"onchange\", function() { " // %form%.form.refresh_listbox(\"%element_name%\", %row%);});"; var n = 0; var event_functions = []; var event_functions2 = []; var k = 0; function check_detail(ele_name) { var eles = ele_name.split("."); if (eles[0].indexOf("Detail") >= 0) return true; else return false; } for (var i = 1; i <= elements.length; i++) { event_functions[k] = event_function; event_functions2[k] =""; for (var j = (i + 1); j <= (elements.length+1) ; j++) { var f = "%form%.form.refresh_listbox(\"" + ((j>elements.length) ? element_name : elements[j-1]) + "\", %row%); "; event_functions[k] += f; event_functions2[k] += "%form%.form.refresh_listbox(\"" + ((j>elements.length) ? element_name : elements[j-1]) + "\", %row%);"; } event_functions[k] += "});"; event_functions[k] = event_functions[k].ReplaceAll("%source_element_name%", elements[i-1] + ((check_detail( elements[i-1])) ? "_" + (dt_row+1).toString() : "")); event_functions[k] = event_functions[k].ReplaceAll("%row%", (dt_row+1).toString()); event_functions[k] = event_functions[k].ReplaceAll("%form%", form_name); event_functions2[k] = event_functions2[k].ReplaceAll("%row%", (dt_row+1).toString()); event_functions2[k] = event_functions2[k].ReplaceAll("%form%", form_name); //this.functions_init.push(event_functions2[k]); this.functions_init.push(event_functions[k]); k++; /* for (var j = (i + 1); j <= (elements.length+1) ; j++) { event_functions[k] = event_function; event_functions[k] = event_functions[k].ReplaceAll("%source_element_name%", elements[i-1] + "_" + (dt_row+1).toString()); event_functions[k] = event_functions[k].ReplaceAll("%element_name%", (j>elements.length) ? element_name : elements[j-1]); event_functions[k] = event_functions[k].ReplaceAll("%row%", (dt_row+1).toString()); event_functions[k] = event_functions[k].ReplaceAll("%form%", form_name); this.functions_init.push(event_functions[k]); k++; } */ } } if (_value != "") { var set_value = "set_element_value(\"%elemane_name%\", \"%value%\");" set_value = set_value.ReplaceAll("%elemane_name%" , element_name + "_" + (dt_row+1).toString()); set_value = set_value.ReplaceAll("%value%" ,_value ); this.functions_init.push(set_value); } else { var set_value = "if ($(\"%element_name%\").options.length > 0) %ControlName%.td_onblur(%row%, \"%name%\", $(\"%element_name%\").options[0].value);" set_value = set_value.ReplaceAll("%row%", dt_row); set_value = set_value.ReplaceAll("%name%",FieldName); set_value = set_value.ReplaceAll("%element_name%",element_name + "_" + (dt_row+1).toString()); set_value = set_value.ReplaceAll("%ControlName%", this.control_name); this.functions_init.push(set_value); } } buf = buf.ReplaceAll("%" + FieldName + "%", display_content); } else buf = buf.ReplaceAll("%" + FieldName + "%", _value); } strBuf.Append("\n" + buf); j += 1; } strBuf.Append("\n" + DataGrid[DataGrid.length-1]); // 產生合計 if (this.settings.sum_list != "") { strBuf.Append("
"); var sum_array = this.settings.sum_list.split("^"); for (var sum_cnt=0; sum_cnt < sum_array.length; sum_cnt++) { var field = sum_array[sum_cnt].split("|"); var digits = 3; if (field.length >= 3) digits = field[2]; if (field.length == 4) strBuf.Append(field[0] + " " + Format(FormatNumber(this.dt.sum(field[1]),digits),field[3]) + "    "); else strBuf.Append(field[0] + " " + FormatNumber(this.dt.sum(field[1]),digits) + "    "); } } return(strBuf); } this.CreateTemplate = function () { var str = new StringBuilder(); var str_row = new StringBuilder(); var str_head = new StringBuilder(); var str_show_fields = ""; var str_column_name = ""; var str_column_title = ""; var i_show_fields = new Array(); if (this.settings.column_mapping.column == "") { var _column_list = ""; for (var col = 0; col < this.dt.getFieldCount(); col++) { var FieldName = this.dt.getFieldName(col); if (_column_list == "") _column_list = FieldName; else _column_list += "," + FieldName; } this.settings.column_mapping.column = _column_list; } if (this.settings.column_mapping.title == "") this.settings.column_mapping.title = this.settings.column_mapping.column str_column_name = this.settings.column_mapping.column.split(","); str_column_title = this.settings.column_mapping.title.split(","); if (str_column_name.length != str_column_title.length) { alert("column_name.length = " + str_column_name.length + "\n column_title.length = " + str_column_name.length + "\n the number of length is not match ..!" ); return (false); } //Start Generate Head Template------------------------------------------------------ str_head.Append("\n"); str_head.Append(""); for (var icol = 0; icol < this.columns; icol++) { if (this.flg_row_number == 1) { str_head.Append("\n 列數"); } if (this.flg_row_control == 1) { str_head.Append("\n 控制項"); } for (var col = 0; col < str_column_title.length; col++) { var _buf = new StringBuilder(); var FieldName = str_column_title[col]; var _col = this.dt.getFieldIndex(str_column_name[col]); _buf.Append("\n %ColumnTitle% "); if (str_column_name[col] == "_select") { _buf.replace("%ColumnTitle%", " " + FieldName); } else _buf.replace("%ColumnTitle%", FieldName); _buf.replace("%ColumnName%", str_column_name[col]); if (_col != -1) _buf.replace("%ColumnType%", this.dt.getFieldType(_col)); else _buf.replace("%ColumnType%", "System.String"); str_head.Append(_buf.ToString()); } } str_head.Append("\n "); //End Generate Head Template------------------------------------------------------ //Start Generate Row Template------------------------------------------------------ str_row.Append("\n "); for (var icol = 0; icol < this.columns; icol++) { if (this.flg_row_number == 1) { str_row.Append("\n " + "\n %show_row%" + "\n "); } if (this.flg_row_control == 1) { if (this.flg_delete_control == 0) { if (this.flag_no_add_icon == 1) str_row.Append("\n "); else str_row.Append("\n "); } else { str_row.Append("\n "); } if (this.flag_no_add_icon == 0) { str_row.Append("\n   "); } str_row.Append("\n "); } for (var col = 0; col < str_column_name.length; col++) { var _buf = new StringBuilder(); var FieldName = str_column_name[col]; if (col == str_column_name.length - 1) _buf.Append("\n " + "\n %%ColumnName%%" + "\n "); _buf.replace("%ColumnName%", FieldName); _buf.replace("%DataAttribute%","TD_" + FieldName); _buf.replace("%CustDataAttribute%","Cust_TD_" + FieldName); str_row.Append(_buf.ToString()); } str_row.Append("\n "); } str_row.Append("\n "); //End Generate Row Template------------------------------------------------------- str.Append("\n"); str.Append("" ); str.Append(" "); str.Append(""); str.Append(""); str.Append(" "); str.Append(" "); str.Append(" "); str.Append(""); str.Append("" ); str.Append(" "); str.Append("\n"); str.Append("" ); str.Append(" "); str.Append(""); str.Append("\n
"); str.Append("\n "); str.Append("\n"); //列數 部門編號 部門名稱 上層單位 str.Append(str_head.ToString()); //insert table head into template str.Append("\n"); str.Append(str_row.ToString()); //insert row data into template // str.Append("\n"); str.Append(str_row.ToString()); //insert row data into template // str.Append("\n"); str.Append("\n
"); str.Append("\n
"); str.Append("
"); return (str.ToString()); } /************************MARK******************************/ /*******************設定分頁********************/ this.CreatePageControlTemplate = function () { var strBuf = new StringBuilder(); var img_url = "/" + COMPANY_CODE +"/" + COMPANY_CODE + "/"; strBuf.Append("\n ") strBuf.Append("\n ") strBuf.Append("\n "); strBuf.Append("\n "); strBuf.Append("\n "); if (this.selectColumn) { strBuf.Append("\n "); strBuf.Append("\n
") strBuf.Append("\n ") strBuf.Append("\n ") strBuf.Append("\n "); strBuf.Append("\n %this.str_page_list%"); strBuf.Append("\n"); strBuf.Append("\n "); strBuf.Append("\n %this.str_page_size%" + "\n "); strBuf.Append("\n %this.str_total_record% %TotalRecord%
  • \"挑選欄位\"
    "); }; return (strBuf.ToString()); } /************************MARK******************************/ /********************************************************************************************** *** 設定 資料欄 onclick 的事件處理 : this.td_onclick = function (row, ColumnName) *** *********************************************************************************************** *** 可重新定義 資料欄 onclick 事件處理模式: *** *** 重新定義:this.after_td_onclick = function(row, ColumnName) *** *** *** ***********************************************************************************************/ this.td_onclick = function (row, ColumnName) { if (this.flg_edit_column == 1) if (this.get_allow_edit(ColumnName) == "1") { // this.show_edit_column(row, ColumnName); } else { try { this.$ele(this.control_name + ".edit.column.cancel")[0].onclick(); } catch (e) { } } this.after_td_onclick(row, ColumnName); } this.after_td_onclick = function(row, ColumnName) { } this.th_onclick = function (ColumnName) { if (this.flg_sort == 1) this.sort_event(ColumnName); this.after_th_onclick(ColumnName); } this.select_onclick = function (_dt) { if ($j("#_select_all").attr("checked")) { $j("input[id^=Search._select]").each( function () { $j(this).attr("checked", true); var r = (this.name.split("_")[2]) - 1; _dt.setValueByRow(r, "_select", "1"); } ); } else { $j("input[id^=Search._select]").each( function () { $j(this).attr("checked", false); var r = (this.name.split("_")[2]) - 1; _dt.setValueByRow(r, "_select", "0"); } ); } this.after_select_onclick(); } this.after_select_onclick = function() { } this.after_th_onclick = function(ColumnName) { } // DataGrid event Table Head on Mouse Over this.th_onmouseover = function (this_th, ColumnName) { /* if (this.flg_th_tip == 1) { this_th.style.cursor='Pointer' this.set_message(this.get_th_tip(ColumnName)); } */ this.after_th_onmouseover(this_th, ColumnName); } this.th_onmouseout = function (this_th, ColumnName) { if (this.flg_th_tip == 1) { this_th.style.cursor='default' this.set_message(""); } this.after_th_onmouseout(this_th, ColumnName); } this.after_th_onmouseover = function(this_th, ColumnName) { } this.after_th_onmouseout = function(this_th, ColumnName) { } //--------------------------------------------------------- // DataGrid event Table Row on Mouse Over this.tr_onclick = function (this_tr, row) { // window.event.cancelBubble = true; cancelBuble(); this.after_tr_onclick(this_tr, row); } this.after_tr_onclick = function(this_tr, row) { } //在ROW上移動時,變色的控制 this.tr_onmouseover = function (this_tr, row) { this_tr.style.cursor='Pointer'; this.tr_old_bgcolor = this_tr.bgColor; this_tr.bgColor='#f9b5c2'; // this_tr.bgColor='#fde9ed'; // this_tr.bgColor='#fbc8de'; // this_tr.bgColor='#fed4d5'; // this.tr_old_color = this_tr.style.color; // this_tr.style.color='#696969'; this.after_tr_onmouseover(this_tr, row); } this.tr_onmouseout = function (this_tr, row) { this_tr.style.cursor='default'; this_tr.bgColor=this.tr_old_bgcolor; // this_tr.style.color=this.tr_old_color; this.after_tr_onmouseout(this_tr, row); } this.after_tr_onmouseover = function(this_tr, row) { } this.after_tr_onmouseout = function(this_tr, row) { } //--------------------------------------------------------- // DataGrid event Table Column on Mouse Over this.td_onmouseover = function (this_td, ColumnName) { if (this.flg_td_tip == 1) { this_td.style.cursor='Pointer' this.set_message(this.get_td_tip(ColumnName)); } this.after_td_onmouseover(this_td, ColumnName); } this.td_onmouseout = function (this_td, ColumnName) { if (this.flg_td_tip == 1) { this_td.style.cursor='default' this.set_message(""); } this.after_td_onmouseout(this_td, ColumnName); } this.after_td_onmouseover = function(this_td, ColumnName) { } this.after_td_onmouseout = function(this_td, ColumnName) { } //--------------------------------------------------------- this.sort_event = function (ColumnName) { var str_execute = "%ControlName%.dt.sort(%ControlName%.sort_column_name, %ControlName%.sort_type);" + "\n%ControlName%.refresh();" + "\n%ControlName%.set_message('');" + "\n%ControlName%.in_process_logo('');"; str_execute = str_execute.ReplaceAll("%ControlName%", this.control_name); //this.$obj(this.display_name + "_DataGrid").innerHTML = this.running_img; this.in_process_logo(this.img_loading); if (ColumnName != this.sort_column_name) { this.sort_column_name = ColumnName; this.sort_type = "ASC"; } else { if (this.sort_type == "ASC") this.sort_type = "DESC"; else this.sort_type = "ASC"; } this.set_message("Sort By " + this.get_column_title(ColumnName) + " " + this.sort_type); window.setTimeout(str_execute, 100); } this.in_process_logo = function (_logo) { var id_name_msg = this.display_name + "_in_process"; if (_logo == "") { this.$obj(this.display_name + "_in_process").innerHTML = ""; hide_div(id_name_msg); this.$obj(id_name_msg).style.zIndex = 1; } else { set_id_position(id_name_msg , document.body.scrollLeft + document.body.clientWidth - 130 , document.body.scrollTop ); this.$obj(id_name_msg).style.zIndex = 100; show_div(id_name_msg); this.$obj(id_name_msg).innerHTML = _logo; } } this.set_message = function (msg) { var msg_templtae = this.msg_template; var mouse_point = get_mouse_point(); var id_name_msg = this.display_name + "_message"; msg_templtae = msg_templtae.ReplaceAll("%msg%", msg); /* + "\n
    scrollLeft = " + document.documentElement.scrollLeft + "\n
    scrollTop = " + document.documentElement.scrollTop ); */ if (msg == "") { this.$obj(this.display_name + "_message").innerHTML = ""; hide_div(id_name_msg); } else { setOpacity(id_name_msg, 7) set_id_position(id_name_msg, mouse_point[0]+10, mouse_point[1]-50); show_div(id_name_msg); this.$obj(id_name_msg).innerHTML = msg_templtae; } } this.get_td_tip = function (col_name) { var column_list = this.settings.column_mapping.column.split(","); var tip_list = this.settings.column_mapping.td_tip.split(","); var i_name = column_list.indexOf(col_name); var str = "可對欄位
    『%column_name%』
    進行編輯"; if (this.settings.column_mapping.td_tip == "") { str = str.ReplaceAll("%column_name%", this.get_column_title(col_name)); if (this.get_allow_edit(col_name) == "0") str = str.ReplaceAll("可對欄位", "不可對欄位"); return (str); } if (i_name != -1) str = tip_list[i_name]; return (str); } this.get_th_tip = function (col_name) { var column_list = this.settings.column_mapping.column.split(","); var tip_list = this.settings.column_mapping.th_tip.split(","); var i_name = column_list.indexOf(col_name); var str = "可根據欄位
    『%column_name%』
    進行排序"; if (this.settings.column_mapping.th_tip == "") { str = str.ReplaceAll("%column_name%", this.get_column_title(col_name)); return (str); } if (i_name != -1) { str = tip_list[i_name]; //str = tip_list[i_name] + "
    (" + this.dt.getFieldType(i_name) + ")"; } return (str); } this.get_column_title = function (col_name) { var column_list = this.settings.column_mapping.column.split(","); var title_list = this.settings.column_mapping.title.split(","); var i_name = column_list.indexOf(col_name); var str_title = ""; if (i_name != -1) str_title = title_list[i_name]; if (str_title == "") str_title = col_name; return (str_title); } this.get_allow_edit = function (col_name) { if (this.settings.column_mapping.allow_edit == "") return ("1"); var column_list = this.settings.column_mapping.column.split(","); var allow_edit_list = this.settings.column_mapping.allow_edit.split(","); var i_name = column_list.indexOf(col_name); var str_allow_edit = ""; if (i_name != -1) str_allow_edit = allow_edit_list[i_name]; if (str_allow_edit == "") str_allow_edit = "0"; return (str_allow_edit); } this.get_format = function (col_name) { if (this.settings.format_list == "") return (""); var column_list = this.settings.column_mapping.column.split(","); var format_list = this.settings.format_list.split("|"); var i_name = column_list.indexOf(col_name); var str_format = ""; if (i_name != -1) str_format = format_list[i_name]; return (str_format); } this.insert_new_row = function () { this.dt.InsertNewRow(0); this.refresh(); } this.add_new_row = function () { this.dt.AddNewRow(); this.refresh(); } this.delete_row = function (row) { try { this.dt.RemoveRowByNumber(row); this.refresh(); } catch (e) { alert(e.Message); } } this.delete_last_row = function () { this.dt.RemoveLastRow(); this.refresh(); } this.show_edit_column = function (row, ColumnName) { var display_edit_column = this.display_name + "_edit_column"; var str_edit_form = this.edit_column_template; var mouse_point = get_mouse_point(); var the_dg = this; var ColumnValue = this.dt.getValueByRow(row, ColumnName); var str_textbox_name = this.control_name + ".edit.column.textbox"; var str_target_name = display_edit_column; var str_trigger_name = "display.%ControlName%.EditColumn.trigger".ReplaceAll("%ControlName%", this.control_name); str_edit_form = str_edit_form.ReplaceAll("%ControlName%", this.control_name); set_id_position(display_edit_column, mouse_point[0]-100, mouse_point[1]); show_div(display_edit_column); //setOpacity(display_edit_column, 8.5); this.$obj(display_edit_column).innerHTML = str_edit_form; this.$obj(this.control_name + ".EditColumn.title").innerHTML = this.str_edit_column_title; this.$obj(this.control_name + ".EditColumn.column_name").innerHTML = this.get_column_title(ColumnName); this.$obj(this.control_name + ".edit.column.row_value").innerHTML = row; this.$obj(this.control_name + ".edit.column.data_type").innerHTML = this.dt.getFieldTypeByName(ColumnName); try { this.oGDD = new GrabDragDropClass(); this.oGDD.initialize(str_target_name, str_trigger_name, "", ""); } catch (e) { alert("this.oGDD = new GrabDragDropClass(); 發生錯誤"); } //設定 文字輸入框 的 『自動改變大小功能』 //function textarea_resize(obj_name, min_col, max_col, min_row, max_row) textarea_resize(str_textbox_name, 10, 80, 4, 40); set_element_value(str_textbox_name , ColumnValue ); set_element_value(this.control_name + ".edit.column.row" , row ); set_element_event(this.control_name + ".edit.column.cancel" , "onclick" , function () { hide_div(display_edit_column); } ); set_element_value(this.control_name + ".edit.column.confirm" , this.edit_column_btn_name_confirm ); set_element_value(this.control_name + ".edit.column.cancel" , this.edit_column_btn_name_cancel ); //設定 資料編輯確認 按鈕 事件 set_element_event(this.control_name + ".edit.column.confirm" , "onclick" , function () { try { var _value = get_element_value(str_textbox_name); if (the_dg.setValue_before(row, ColumnName, _value) == false) return (false); if (the_dg.flg_auto_update == 1) { //alert("the_dg.flg_auto_update = " + the_dg.flg_auto_update); if (the_dg.on_setValue(row, ColumnName, _value) == false) return (false); the_dg.setValue(row, ColumnName, _value); } else { the_dg.setValue(row, ColumnName, _value); the_dg.refresh(); } hide_div(display_edit_column); } catch (e) { alert(the_dg.control_name + " 『資料編輯 確認』錯誤!" + "\n錯誤訊息:" + e.Message ); return (false); } } ); set_element_focus(str_textbox_name); this.$ele(str_textbox_name)[0].onkeydown(); } this.on_dirty = function (row, ColumnName, value) { } this.setValue = function (row, ColumnName, value) { var dirty_flag = false; try { if (this.dt.getValueByRow(row, ColumnName) != value) { this.dt.setValueByRow(row, "_dirty", "Y"); this.dirty = dirty_flag = true; } this.dt.setValueByRow(row, ColumnName, value); if (dirty_flag) this.on_dirty(row, ColumnName, value); } catch (e) { alert("this.dt.setValueByRow(" + row + ", " + ColumnName + ", " + value + ") 發生錯誤 : " + "\n錯誤訊息:" + e.Message ); return (false); } } this.on_setValue = function (row, ColumnName, value) { var dt = new DataTable(); var str_csv_format = new StringBuilder(); var str_id = this.dt.getValueByRow(row, "id") var str_xml_data = ""; with(str_csv_format) { Append("\n" + "0,id,type,name,value,memo"); Append("\n" + "1,System.String,System.String,System.String,System.String,System.String"); Append("\n" + "2,1,KeyValue,id,,欄位Key值"); Append("\n" + "2,2,ColumnValue,,,要準備對資料庫更新的欄位以及欄位值"); Append("\n"); } //alert(str_csv_format.ToString()); with (dt) { ImportCSV(str_csv_format.ToString()); setValueByIndex("id", "1", "value", str_id); setValueByIndex("id", "2", "name", ColumnName); setValueByIndex("id", "2", "value", value); } str_xml_data = dt.ExportXML("UpdateData", "UpdateColumn", "", 0, -1); set_element_value("XML", str_xml_data); try { var str_url = this.str_page_name + "?AJAX=1&do_action=ajax_update_data"; var str_element_list = "XML"; var str_result = ""; str_result = dt.connect(str_url, str_element_list); if (dt.getValue("flg_error") == "1") { alert("資料更新失敗!\n" + dt.getValue("message")); return (false); } else { this.setValue_after(); return (true); } } catch (e) { window.status = "DataGrid.on_setValue() 發生錯誤!" + "\n錯誤訊息:" + e.Message + "\n終止程式執行"; return (false); } } this.setValue_before = function () { } this.setValue_after = function () { } this.data_delete = function (row) { var str_url = ""; var str_element_list = ""; var row_id = this.dt.getValueByRow(row, this.delete_key); var dt = new DataTable(); try { // event.cancelBubble = true; this.cancelBubble(); } catch (e) {}; if (this.data_delete_before() == false) return (false); if (row_id == "") { if (confirm("是否確定刪除這筆資料?")) this.delete_row(row); if (o_EditForm.active == 1) o_EditForm.after_delete_data(); else o_AddNewForm.after_delete_data(); this.data_delete_after(); return (false); } if (confirm("是否確定刪除這筆資料?") == false) return (false); try { str_url = this.str_page_name + "?AJAX=1&do_action=ajax_data_delete&id=" + row_id; dt.connect(str_url, str_element_list); if (dt.getValue("flg_error") == "1") { alert(dt.getValue("message")); return (false); } else { if (o_EditForm.active == 1) o_EditForm.after_delete_data(); else o_AddNewForm.after_delete_data(); this.data_delete_after(); return (false); } } catch (e) { window.status = "DataGrid.data_delete() 發生錯誤" + "\n id = " + row_id + "\n 錯誤訊息:" + e.Message; return (false); } } this.data_delete_before = function () { } this.data_delete_after = function () { } this.cancelBuble = function() { try { var agent = jQuery.browser; if(agent.msie) { event.cancelBubble = true; } else { event.stopPropagation(); } } catch (e) {}; }; this.data_edit = function (row) { window.status = "目前沒有設定功能!"; } this.initialize = function () { } this.td_onblur = function (row, _name, _value) { if (this.td_after_onblur(row, _name, _value)) this.setValue(row, _name, _value); }; this.td_after_onblur = function (row, _name, _value) { return true; }; this.before_display_value = function(dt,buf,FieldName,_value) { }; } -->