讯光科技
jQuery
  • Query
  • DataForm
  • DataGrid
  • jQuery其他元件
  • jQuery其他問題

Query

當前位置:首頁>常見問答>jQuery


QueryColumn 查詢如何加上固定setwhere 的值?

function queryGrid(dg) { //查詢後添加固定條件
if ($(dg).attr('id') == 'dataGridMaster') {
var where = $(dg).datagrid('getWhere');
if (where.length
0) {
where = where.replace("myint", "Convert( decimal(10,0),nullif(datestring,''))"); //
這個地方您可以自行使用其他的方法修改一下組好的where語句
}
$(dg).datagrid('setWhere', where);
}
}

查詢條件QueryColumn的Combox如何設定SetWhere? $('#EmployeeID_Query').combobox('setWhere', "where條件"); EmployeeID是欄位名字。
如何讓使用者輸入搜尋條件(QueryColumn)設為必填? 在網頁上定義一個queryGrid的js方法,判斷組好的where語句中是否有該欄位,如果沒有,就用alert()來告知User並不執行setwhere。
如何用JS語法給QueryColumns預設值? $('#ID_Query').val('1111');
QueryAutoColumn可以改變setwhere條件嗎?

JQuery的查詢如果有比如需要添加自定義查詢條件,或者修改掉已經組好的where條件,比如欄位增加上table的名字,或者對一個as出來的虛擬欄位做查詢等,都可以通過如下方法實現:
QueryFields中定義您需要處理的欄位名字,然後定義一個queryGridjs方法,就可以實現。js方法如下:
function queryGrid(dg) { //
查詢后添加固定條件
if ($(dg).attr('id') == 'dataGridMaster') {
var where = $(dg).datagrid('getWhere');
if (where.length > 0) {
where = where.replace("myint", "Convert( decimal(10,0),nullif(datestring,''))"); //
這個地方您可以自行使用其他的方法修改一下組好的where語句
}
$(dg).datagrid('setWhere', where);
}
}

如何實現Query Dialog按Enter自動查詢?
範例程式如下:
$(document).ready(function () {
$("input", "#querydataGridView").each(function () {
$(this).live('keypress', function (e) {
var p = e.which;
if (p == 13) {
var where = $("#dataGridView").datagrid('getWhere');
$("#dataGridView").datagrid('setWhere', where);
$("#querydataGridView").window('close'); //
查詢視窗關閉
}
});
});
DataGrid 的Query 欄位中,如何在inforcombobox 使用setWhere? $('#id').combobox('setWhere',where條件)query的id一般為欄位的名字+_+Query,比如:OrderID_Query
修改查詢視窗的Caption
comboboxonselect寫程式:
function queryCombox(row) {
$('#OrderDate_Query').closest('td').prev('td').html('aaa');
}
MasterDetail查詢時, 若有相同欄位的查詢, 其ID值會相同, 如何能取到正確的Detail查詢欄位ID值? 如果是不同的DataGrid的查詢欄位名稱相同,可以通過如下方式取得:
var id = $($('#querydataGridMaster0').find('#ProductName_Query')).val();
查詢的欄位ID相同時,要如何 選到第二個欄位
//有重複欄位通常是用在區間查詢,所以CAPTION應該會不一樣(例如:請購日期起.迄)
//透過這個方式選到相同ID但不同CAPTION的查詢欄位取值
var dateFrom = $('#po_date_Query').datebox('getValue');
var dateTo = $('#po_date_Query[infolight-options*="請購日期到"] ').datebox('getValue');


DataForm

當前位置:首頁>常見問答>jQuery


dataform caption 如何依某欄位值動態變更caption內容? ("#dataFormMasterOrderID").closest("td").prev("td").html("您要改變的值");
是否可以調整dataFormMaster距離上方位置的距離? 修改一下Dialog的DialogTop和DialogLeft屬性。
如何在DataForm某個欄位右方產生Button
JQDataForm  OnloadSuccess() 事件加入
     var inputCOD_CUST = $("#dataFormMasterCOD_CUST");
     var button = '<a href="javascript: popCOD_CUST();" id="qryBtn"><img src="../js/themes/icons/Select.png" style="border:none"></a>';
               
     inputCOD_CUST._outerWidth(parseInt(inputCOD_CUST.css('width')) - 20);
     inputCOD_CUST.after(button);
dataFrom 欄位如何設為唯讀?
dataForm上各欄位元件的id就是dataFormMaster+欄位名稱
$('#id').combobox('disable');
$('#id').datebox('disable');
$('#id').attr('disabled', true); //textbox
$('#id').refval('disable'); 
JQDialog對話視窗的按鈕是否可以隱藏? 在dataform的onloadsuccess 撰寫$("#JQDialog1").find(".infosysbutton-s").hide();
如何在DataForm新增存檔後,DataGrid可自動Focus在新增出來的那筆Record呢?

DataForm編輯,新增一筆後(有自動編號),在DataGrid撈出新增那筆

--> DataFormonApplied事件,寫JS即可。

function autonum1(rows) {

var CustomerID = "";

if (rows) {

CustomerID = rows[0].CustomerID; //取出自動編號值

}

$("#dataGridView").datagrid('setWhere', "CustomerID='" + CustomerID + "'");

}

開啟時直接進入新增模式

openForm('#JQDialog2', rowData, "inserted", 'dialog');

rowData是當前選擇的dataGridrow,新增傳null進去就可以。

如何使多個dataform對應同一個dataGrid?

如果只是瀏覽的話,可以在dialogtabs,放多個dataForm。然後在某一個dataFormonloadSucess寫一個方法:

var opt = $('#JQDialog1').attr('infolight-options');

var opt1 = option.replace('#dataFormMaster', '#dataFormMaster0');

$('#JQDialog1').attr('infolight-options', opt1);

openForm('#JQDialog1',$('#dataGridView').datagrid('getSelected') , 'viewed', '');

$('#JQDialog1').attr('infolight-options', opt);

欄位在編輯模式變唯讀時,可以不要觸發onblur嗎?

function seqno_onblur() {

if ($("#dataFormMasterseq_no").attr('readonly')==true)  {

//return

alert('readonly');

};}

JQDataForm 能否支援同時存取兩個table? 不能同時支援兩個table。不過,您可以通過sql語句的比如join,講兩個table整合成一個table,然後在server端相關事件寫程式講資料寫入到第二個表中。
如何辦斷form上所有的欄位是否都已驗證通過? 在DataForm OnApply事件裡用下面方法,可以判斷驗證狀態是否通過驗證$('#dataFormMaster').form('validateForm');
如何實現DataForm Dialog按Enter自動存檔? 範例程式如下:
$("#dataFormMaster").form({
onLoadSuccess: function (data) {
$(this).live('keypress', function (e) {
var p = e.which;
if (p == 13) {
submitForm('#JQDialog1');
}
});
}
});
});
開啟畫面時直接進入 DataForm?
1. Wizard建立一個JQuerySingle2樣板的表單。
2. DataForm屬性AlwaysReadOnly=True
2. JQDialogEditMode屬性設為 Continue模式。
3. DataFormToolItems?性設置 
<JQTools:JQToolItem Icon="icon-previous" OnClick="previous" Text="上筆"/>
<JQTools:JQToolItem Icon="icon-next" OnClick="next" Text="下筆"/>
<JQTools:JQToolItem Icon="icon-add" OnClick="insert" Text="新增"/>
<JQTools:JQToolItem Icon="icon-edit" OnClick="update" Text="更改"/>
<JQTools:JQToolItem Icon="icon-remove" OnClick="remove" Text="?除"/>
<JQTools:JQToolItem Icon="icon-search " OnClick= "query" Text= "查詢"/> 
4. 查詢欄位仍須設置在DataGridQueryColumns屬性上。
如何在dataform 的某個欄位後增加一行說明文字?
方式1.
$('<br/><span id="t1" style=\"color:Red\" >您要顯示的內容</span>').insertAfter($('#dataFormMasterShipVia', '#dataFormMaster'));

方式2.

利用某個不用的欄位,然後在formonloadsuccess的時候,將這個欄位隱藏,就會保留欄位前面的Caption文字說明。

每個欄位標題要有底色,也就是JQDataForm如何在每一個欄位的Caption都加上自訂的CSS
//因為dataform欄位數量不固定,用前端js不容易找到每一個caption欄位的td,並加上css
//因此可以往前找,在render出dataform欄位標題的html時,就加上css
//改JQClientTools/JQDataForm.cs

#1462
writer.AddAttribute(HtmlTextWriterAttribute.Class, "myclass"); //加上這行
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write(Caption);
writer.RenderEndTag();
在JQWebForm上方加按鍵的CODE SAMPLE
function dataFormMasterOnLoadSuccess()
        {
            var htmlCode = "<a href='javascript:void(0)' class='easyui-linkbutton infosysbutton-c l-btn' "
            + "onclick='parentAddTabCustomers();\'><span class='l-btn-left'><span class='l-btn-text'>編輯客戶資料</span></span></a>";
            $('#dataFormMaster').before(htmlCode);
        }

        function parentAddTabCustomers()
        {
            var customerId = $('#dataFormMasterCustomerID').refval('getValue');
            var url = "../MySamples/Customers.aspx?DRILLDOWN=true&REMOTENAME=sOrders.Customers&TABLENAME=Customers&DRILLDOWN_KEYFIELD=CustomerID=''" + customerId + "''";
            parent.addTab('客戶資料', url);
        }

DataGrid

當前位置:首頁>常見問答>jQuery


如何在Javascript中修改JQGridColumn的Caption? $('#DatagridID').datagrid('getColumnOption',columnName).title=titleName;
如何在datagrid,toolitems中撰寫下載檔案指令?

var a;
a = window.open("../test/tst/list.rar", "_blank", "width=0, height=0,status=0");
a.document.execCommand("SaveAs"); 
open
方法是開啟這個文件,如果是圖片或者txt等瀏覽器支援的文件格式,就會直接開啟,如果是不支援的比如rar文件,就會提示下載。

如何動態隱藏DataGrid某一欄位?

$("#dataGridMaster").datagrid('showColumn', 'CustomerID'); //顯示欄位
$("#dataGridMaster").datagrid('hideColumn', 'CustomerID'); //
隱藏欄位

如何將DataGrid明細欄位加總累計到主檔DataForm的欄位來呢?
$(document).ready(function () {
            $("#dataGridDetail").datagrid({
                onAfterEdit: function (rowIndex, rowData, changes) {
                 rowData.Amount = rowData.UnitPrice * rowData.Quantity;
                    $(this).datagrid('refreshRow', rowIndex);
                }})});
//加總至Master欄位。DataGridDetail Amount欄位Total屬性設定sumOnTotal屬性定義此方法
function mytotal(rowData) {
            $('#dataFormMasterTotalAmt').val(rowData.Amount);
        }
//DataFormMasterOnApply屬性定義此方法
function formApply() {
            endEdit($('#dataGridDetail'));
        }
如何取dataGridView的欄位值?
var datagrid = $('#JQDataGrid1')
var editIndex = getEditIndex(datagrid);
var editor = datagrid.datagrid('getEditor', { index: editIndex, field: 'LastOrdDate' }); //
LastOrdDate欄位
var valto = editor.actions.getValue(editor.target); //
取值
editor.actions.setValue(editor.target,
某值);//給值 
如何在JQDataGrid 插入一個 Button,並且可以 Click 呼叫 Js function?
[1] InfoCommon  SQL 增加一個虛擬欄位
ex: Select '' AS ckBox From Customers
[2] JQDataGrid最前面加入ckBox虛擬欄位並在formatscript屬性設定一個Javascript 的函式名稱,ex: ckBoxFormater
[3] 實作 Javascript 函式
function ckBoxFormater(value,row,index)
{
return '<input type="button" value="'+ value +'" onclick="myClick()"/>';
}
export 匯出Excel時,如何讓 JQDataGrid 上的隱藏欄位不要匯出?
1. JQWebClient\js\jquery.infolight.js文件中查找exportGrid方法。
2.
在方法的:
var option = $(dgid).datagrid('getColumnOption', field);
程式下,增加一個if程式:
if (!option.hidden) {
3.
這個if一直到:
columns.push(column);
下,整個包起來。
JQDataGrid上Combox連動如何撰寫?
1.combobox連動:
在第一個comboOnSelect上定義方法
function filterCity() {
var val = $(this).combobox("getValue");
var row = $('#dataGridMaster').datagrid('getSelected');
var rowIndex = $('#dataGridMaster').datagrid('getRowIndex', row);
var editor = $('#dataGridMaster').datagrid('getEditor', { index: rowIndex, field: 'ShipCity' });
var combo = editor.target;
combo.combobox('setWhere', "CountryID = '" + val + "'");
}
//
上面有元件、欄位名稱請自行替換為自己的。
2.combobox
過濾:
OnBeforeLoad
屬性上定義方法
function comboBeforeLoad(param) { 
var queryWord = new Object();
queryWord.whereString = "where
條件";
param.queryWord = $.toJSONString(queryWord);
}
要如何抓到DataGridView所有rows的值呢? var rows = $('#dataGridMaster').datagrid('getRows');取回當前頁的所有資料。
請問該如何在javascript中改變datagrid的AllowAdd屬性?
[1]如果能在 .cs 判斷條件的話,在 Page_Load() 事件加入
JQDataGrid1.AllowAdd = false; //不允許新增
[2]若在前端才能判斷,就還是透過 Javascript code
$('#toolItemdataGridView新增').hide() 將新增按鈕隱藏
 OnBeforeInsert() OnInsert() 事件來控制
如何隱藏datagrid? datagrid不能直接隱藏,可以在外面放一個div,對div執行hide
如何將陣列資料逐筆插入datagrid?
var row = new Object();
row['fieldname'] = strarray[i];
......
$('#dataGridDetail').datagrid('appendRow', row);
datagrid如何實現一次多筆刪除功能?
自行增加一個刪除鈕,裡面寫JS程式,比如:
var rows = $("#dataGridDetail").datagrid('getChecked');
for (var i = rows.length - 1 ; i >= 0 ; i--) {
var index = $('#dataGridDetail').datagrid('getRowIndex', rows[i]);
$('#dataGridDetail').datagrid('deleteRow', index);
apply($('#dataGridMaster'));
}
DataGrid字數較長無法全部看到,有欄位自動換列功能嗎?

//dataGridColumnformatScript屬性,定義一個自定義方法,比如wrapText。然後在aspx中定義該方法,如下:

function wrapText(value) {

     return "<p style='margin:0px;word-wrap:break-word;white-space: normal'>" + value + "</p>";

            }

datagrid js取得欄位代號及名稱的方法

var datagrid = $('#dataGridMaster');

var rowIndex = $("#dataGridMaster").datagrid("getRowIndex", $("#dataGridMaster").datagrid("getSelected"));

var field = 'CustomerID';

var row = datagrid.datagrid('getPanel').find('.datagrid-view1 .datagrid-body').find('tr[datagrid-row-index="' + rowIndex + '"]');

var value = row.find('td[field="' + field + '"]>.datagrid-cell').html();

alert(value);

如何直接改datagrid的值?

$(dialoggrid).datagrid('beginEdit', index);

var editor = $(dialoggrid).datagrid('getEditor', { index: index, field: field });

if (editor) {

editor.actions.setValue(editor.target, row[field]);

}

$(dialoggrid).datagrid('endEdit', index);

如何清除 Detail的資料?

var rows = $("#dataGridDetail").datagrid('getRows');

var cnt = rows.length;

for (var i = cnt - 1 ; i >= 0 ; i--) {

$('#dataGridDetail').datagrid('deleteRow', 0);

}

datagrid可以動態的disable和enable欄位嗎?
dataGrid無法通過js來控制readonly,如果是要控制輸入項,您可以參考:
//修改時,欄位不可編輯。寫在DataGrid onUpdate事件
function UpdateTest() {
            var row = $(dgid).datagrid('getSelected');
            var index = $(dgid).datagrid('getRowIndex', row);
            var editIndex = undefined;
            if (editIndex != index) {
                    $(dgid).datagrid('selectRow', index).datagrid('beginEdit', index);
                    var cellEdit = $(dgid).datagrid('getEditor', { index: index, field: 'FieldName' });
                    
                       $(cellEdit.target).attr("disabled", "disabled"); //text
                       //$(cellEdit.target).combobox('disable'); //combobox
                       //$(cellEdit.target).datebox({ disabled: true }); //datebox
                       //$(cellEdit.target).refval('disable'); //refval
            }            
        }
 
//新增時,欄位不可編輯。在DataGrid toolItem新增一個按鈕
function InsertTest() {            
            var index = $(dgid).datagrid('getRows').length;
            insertItem(dgid, "$(this)"); //--新增空白一筆記錄
            var editIndex = undefined;
            if (editIndex != index) {
                $(dgid).datagrid('selectRow', index).datagrid('beginEdit', index);
                var cellEdit = $(dgid).datagrid('getEditor', { index: index, field: 'FieldName' });;
 
                $(cellEdit.target).attr("disabled", "disabled"); //text
                //$(cellEdit.target).combobox('disable'); //combobox
                //$(cellEdit.target).datebox({ disabled: true }); //datebox
                //$(cellEdit.target).refval('disable'); //refval
            }
}
dataGrid 可否依資料內某欄位條件不同改變整行背景顏色?

$('#dataGridMaster').datagrid({

//設定datagridrow的背景色

rowStyler: function (index, row) {

if (row.FieldName == "value") {

return 'background-color:#6293BB;color:#fff;';

}

else {

return 'background-color:red;color:black;';

}}

});

color是字體顏色,如果不需要設定,可以不設。

若想在Grid上的toolitem那欄的按鈕,當游標停在那個按鈕上時出現提示?

網頁增加如下程式中script中。
$(document).ready(function () {
$('#toolItemdataGridMaster
查詢').attr('title','我的查詢');
$('#toolItemdataGridMaster
查詢').find('.l-btn-text').mouseover(function()
{
$(this).addClass('overtext');
});
$('#toolItemdataGridMaster
查詢').find('.l-btn-text').mouseout(function()
{ $(this).removeClass('overtext');
});
})
其中:
toolItemdataGridMaster查詢”是我的buttonid,可以瀏覽網頁,檢查元件查找元件的id,並替換到上述程式中。

另外,需要增加一部分內容到style項中:
<style>
.overtext
{
color: #00ff00;
}
</style>
顏色請自行調整。 

grid是否可以調整列高?

可以用一個變通的方法,隨便找一個text欄位,定義formatscript,定義一個js方法,方法的程式:

return "<p style='margin:0px;word-wrap:break-word;white-space: normal; height:50px'>" + value + "</p>";

datagrid 加總欄位 的加總值如何取? 可以在欄位的onTotal定義一個js方法,系統會帶參數,比如:function Mytotal(footerRow) {footerRow.Quantity就是對Quantity欄位匯總的值}
如何讓DataGrid第一行不要預設為選中的狀態? 在DataGrid的OnLoadSuccess事件裡撰寫$("#dataGridView").datagrid("clearSelections");
要如何取得dataGrid目前selectedrow 的 dataForm目前狀態? dataForm的onloadsuccess的事件,寫程式:getEditMode($('#dataFormMaster'))是取得狀態,3個狀態值:updated,inserted,viewed
如何新增DataGrid上refval元件OnBlur事件
function beginEdit(dg, index) 
        {
            dg.datagrid('selectRow', index).datagrid('beginEdit', index);
            setEditIndex(dg, index);
            dg.datagrid('changeState', 'editing');

            var ed = dg.datagrid('getEditor', { index: index, field: 'CompanyName' });
            $(ed.target, "#dataGridMaster").next().find('.refval-text').click(function () {
                $(ed.target, "#dataGridMaster").next().find('.refval-text').bind('blur', function () {
                    alert('test');
                });
            })
        };
//直接放在<script>下就可以,需自行替換FieldName和DataGrid的名字
DataGrid載入時動態給予分頁筆數
//在OnLoadSuccess事件
 var first = true;
        function dataGridOnLoadSuccess() {
            if (first) {
                $('#dataGridView').datagrid({
                    pageSize: 25,
                    pageList: [15, 20, 25],
                });
                first = false;
            }
        }
GRID雙數欄位底色變斑馬效果

     <style>

        .datagrid-btable:nth-child(even){

            background-color:azure;

        }

    </style>

Grid選中一個欄位帶值到另一個欄位的程式範例
範例說明, 產品欄位選中的產品的單價帶到單價欄位.
產品用InfoRefVal元件,要設定:
onSelect:dataGridDetailProductIdOnSelect
selectOnly:true

        function dataGridDetailProductIdOnSelect(selectedRow) {
            var unitPrice = selectedRow.UnitPrice;
            var editingRowIndex = $('#dataGridDetail').datagrid('getRowIndex', $('#dataGridDetail').datagrid('getSelected'));
            var editor = $('#dataGridDetail').datagrid('getEditor', { index: editingRowIndex, field: 'UnitPrice' });
            $(editor.target).val(unitPrice);
        }

jQuery其他元件

當前位置:首頁>常見問答>jQuery


infoOptions如何動態MultiSelect設定?
if (需要設成多選方式) {
$('#dataFormMasterShipAddress').attr('infolight-options', $('#dataFormMasterShipAddress').attr('infolight-options').replace('multiSelect:false', 'multiSelect:true'));
}
else {
$('#dataFormMasterShipAddress').attr('infolight-options', $('#dataFormMasterShipAddress').attr('infolight-options').replace('multiSelect:true', 'multiSelect:false'));
}
$('#dataFormMasterShipAddress').options('initializePanel');
dataFormMasterShipAddress
是元件id,請注意修改。 
dataForm各種欄位型態取值的方式?
可參考jquery.infolight.js 搜尋getvalue   setvalue
 
//TextBox的抓法
  var NextStep = $('#dataFormMasterNextStep').val();
 
  //RefVal的抓法  ValueMember
  var NextStep = $('#dataFormMasterNextStep').refval('getValue');
  //RefVal的抓法, DisplayMember
  var NextStep = $('#dataFormMasterNextStep').refval('selectItem').text;
 
  //combobox的抓法  
  var NextStep = $('#dataFormMasterNextStep').combobox('getValue');
  
  //CheckBox的抓法
  $('#dataFormMasterNextStep').checkbox('getValue')
 
  //ComboGrid的抓法
  $('#dataFormMasterNextStep').combogrid('getValue')
 
  //DateTimeBox的抓法
  $('#dataFormMasterNextStep').datetimebox('getValue')  
 
  //Options的抓法
  $('#dataFormMasterNextStep').options('getValue')  
 
//combobox塞值
  $('#dataFormMasterNextStep').combobox('setValue');
checkbox如何增加onChange事件?
var optionspanel = $('#dataFormMasterBitFlag').data("infooptions").panel;
$(":radio,:checkbox", optionspanel).click(function () {
alert($(this).is(":checked"));
});
範例中dataFormMasterBitFlag是元件idalert的內容是true/false 
如果是editorCheckbox的話,請使用如下方法:
$('#dataFormMasterBitFlag').click(function () {
alert($(this).is(":checked"));
});
可以寫在formonloadsuccess
如何取得infofileupload上傳時的檔名?
var infofileUpload = $('#dataFormMasterShipCity');
var infofileUploadvalue = $('.info-fileUpload-value', infofileUpload.next())
var infofileUploadfile = $('.info-fileUpload-file', infofileUpload.next())
infofileUploadvalue.val()
是文件名。
infofileUploadfile.val()
是完整路徑。 
datebox的format可以呼叫method嗎?

dataFormdataGridrender的時候,會讀取columnformat設定。如果是要寫一個特定的例子的話,可以考慮改在JQClientTools下的兩個cs程式中。判斷如果format為空白,或者某個特定值,則將其改為您實際需要的值。

比如JQDataForm.csJQFormColumnRender方法查找:

else if (Editor == JQEditorControl.DateBox)

在其下改寫:

if (string.IsNullOrEmpty(Format))

Format = "yyyy-mm-dd HH:mm:SS";

infooptions 如何清空勾選? $('#dataFormMasterBitFlag').data("infooptions").panel.find(":checkbox").prop("checked", false);
datagrid可以動態調整標題的內容嗎? 在page的Load事件撰寫程式:dataGridMaster.Columns[0].Caption = "...";
TREEVIEW 可以 SetWhere嗎? JQTreeView控件上有onClick事件,配合新提供的SetWhere方法即可,如下:$('#treeviewid').tree('setWhere','CustomerID="A"');
dialog如何取得取消與右上角關閉事件? dialog的取消,可以在dataform的onCancel中定義方法,這個方法會先觸發,然後關閉dialog。上面的X關閉功能,可以用js增加dialog的onclose事件。
如何動態改變easyui-tabs的Title?

function changeTitle() {

var tab = $('#tt').tabs('getSelected'); // get selected panel

$('#tt').tabs('update', {

tab: tab,

options: {

title: 'New Title',

}

});

}

refval 如何使button隱藏或不能點擊? $("#id").data("inforefval").refval.find("span.icon-view").hide(); //refval放大鏡鈕隱藏
JQ Tabs 如何隱藏與開啟?

var easyuiTabDIV = $('#Div1');

var tabs = easyuiTabDIV.tabs('tabs');

easyuiTabDIV.tabs('select', tabs[1].panel('options').title);

單獨使用JQFileUpload如何可以連續上傳?

在元件的onsuccess事件定義一個方法名字,程式如下:

function fileuploadsuccess(value)

{

$('#JQFileUpload1').next().remove()

initInfoFileUpload($('#JQFileUpload1'));

}

JQFileUpload可以設成disable嗎?
dataFormID為所在JQDataFormIDuploadColumn為對應欄位名。
var fileUpload = $("#infoFileUpload" + dataFormID + uploadColumn);
fileUpload.attr('isalsoreadonly', true);
checkbox如何動態選取? $("#dataFormMasterACTIVITY").checkbox('setValue', true);
如何讓JQTREE一開始時是摺疊的? 可以在onloadsuccess事件執行:$('#ID').tree('collapseAll');
dialog開啟位置如何設定?
$(fid).window('move', {
left: dialogLeft,
top: dialogTop
});
dialogLeftdialogTop是具體的設定內容。
JQinfofileupload 如何顯示上傳檔名並可重複上傳
JQinfofileupload選取檔案後,按下上傳鈕前,要在欄位上看到選取的檔案名,可以設定元件的ShowLocalFile屬性為True,
但此屬性的限制是只能上傳一次,上傳過後瀏覽鈕會被隱藏。
若是要使其能夠重複上傳,可以在元件的OnSuccess事件中寫兩行code:
$('#JQDataForm1Attachment1').next().remove()
initInfoFileUpload($('#JQDataForm1Attachment1'));
動態設定RefVal元件中GRID預設瀏覽的分頁筆數
$(function () {
            var grid = $('table.refval-grid');
            grid.datagrid({
                pageSize: 20,
                pageList: [15, 20, 25],
            });
        });
JQ統計圖表使用LoadData方式

//X軸為年月,Y軸為百分比為例

var  percent = [];//ex: ['20','50','70'']

var  yearmonth = [];//ex: ['201701','201702'','201703']

//PLOTID,LineChart為例

var plot1 = $.jqplot('JQLineChart1', [percent],//百分比 {

title: 'TAT Target', //PLOTTitle

seriesDefaults: {

pointLabels: { show: true }

},

axes: {

xaxis: {//X

renderer: $.jqplot.CategoryAxisRenderer,

ticks: yearmonth //年月

},

yaxis: {//Y

min: 0, //刻度最小值

max: 100, //刻度最大值                                

}

}                       

});

plot1.replot();//重製圖表

jQuery其他問題

當前位置:首頁>常見問答>jQuery


想取得某些參數, 如何得知getClientInfo()有哪些變數可以使用? vs中開啟EFClientTools下的Reference.cs文件。在下拉查看各方法和屬性的地方,除了Groups,以及其他後面帶Field字樣的內容,其他都是可以取得。
如何限制主頁面MainPage所開啟的畫面數目(Tab數目)?

MainPage.js文件中有一個addTab方法,在其中增加程式處理,增加的位置:
if (mainTab.length == 0) {
mainTab = $("#tabsWorkFlow")
}
的下方。增加的內容:
if (mainTab.tabs('tabs').length > 3) {
alert('
已經超過最大數量,請先關閉頁簽!');
}
然後將下面的程式都用else{}包起來。 

Excel匯入Master-Detail資料時,PrimaryKey該如何產生自動編號? 1.PrimaryKey在Client端先給一個預設值,server端會自動產生號碼2.如果您要在Server端取得號碼,可以執行AutoNumber1.Execute(connection, trans) , 會返回AutoNumber目前最新的號碼。
如何將左邊Menu自動縮合? 開啟JQClientToolsJQtree.cs文件,在其中搜索onLoadSuccess,會找到:
onLoadSuccess: function (node, data) {
}
改為:
onLoadSuccess: function (node, data) {
$('#" + this.ClientID + @"').tree('collapseAll');
}
請重建JQClientTools專案,確保網站參考的該dll為最新的。
login 後如何自動開啟指定的網頁?

MainPage_Flow.aspx  

$(document).ready(function () 

    addTab("TabTitle", "MyWebs/ JQSingle1.aspx");

});

如何用js去開啟dataGrid的某筆資料並控制開啟的狀態?
openForm('#JQDialog1', $('#dataGridMaster').datagrid('getSelected'), "viewed", 'dialog');
//最後兩個參數分別是打開的時候狀態(viewed, updated,inserted)
請問如何呼叫JqDataHandle.ashx 並傳給他remoteName、tableName、whereString取到某一筆資料?
var remoteName = getInfolightOption($('#dataFormMaster')).remoteName;
var tableName = getInfolightOption($('#dataFormMaster')).tableName;
var queryWord = new Object();
queryWord.whereString = "TKQK10='" + $('#dataFormMasterTKQK10').refval('getValue') + "' AND " + "TKQK03=to_date('" + $('#dataFormMasterTKQK03').datebox('getValue') + "','YYYY/MM/DD')";
$.ajax({
type: "POST",
url: getRemoteUrl(remoteName, tableName, true),
data: { queryWord: $.toJSONString(queryWord) },
cache: false,
async: false,
success: function (data) {
index = $('#dataGridView').datagrid('getRowIndex', $('#dataGridView').datagrid('getSelected'));
var rows = $.parseJSON(data);
if (rows.length > 0) {
$('#dataGridView').datagrid('updateRow', { index: index, row: rows[0] });
}
}
}); 
將系統MainPage.aspx左邊選單(JQTree)收合

這個需要在JQClientTools下的JQTree.cs91行的onLoadSuccess內執行:
$('#" + this.ClientID + @"').tree('collapseAll');
然後重建JQClientTools專案,並確保網站下該dll的參考是最新的。 

如何依照公司別做資料過濾? 在cs寫EFClientTools.ClientUtility.ClientInfo.Site = "xxx"可以在logon.aspx.cs中就先寫
從外部網站透過 JQWebClient/SingleSignOn.asmx 利用 SingleSignOn().LogOn 方法置入某一頁面後,若外部網站不再使用或外部網站登出時,請問如何SingleSignOut?

[WebMethod(true)]

public void LogOut(string userId)

{

EFServiceClient client = EFClientTools.ClientUtility.Client;

var ipAddress = HttpContext.Current.Request.UserHostAddress;

var clientInfo = new ClientInfo()

{

UserID = userId,

IPAddress = ipAddress,

Locale = "en-us",

UseDataSet = true

};

client.LogOff(clientInfo);

}

如何發送不同格式的通知email?

需要自己修改Email.cs的方法:
一共有4個方法:
SendTo2
:是Schecudling使用的DelaySendMail方法。
SendTo3
:是通知
SendTo4
:是退回
SendTo
:是其他Submitapprove等使用。 

JQQuery框架如何設定逾時時間? webconfig增加:< sessionState mode="InProc" cookieless="false" timeout="20" / >
請問easyui有無類似加載中...的效果?
可以在呼叫程式時執行:
$.messager.progress({ msg: 'saving controls ...' });
success的時候執行
$.messager.progress('close'); //進度條結束
登入時可以預設資料庫是那一個嗎?
請在logon.aspx.csPage_load事件找到:
LoadCookie();
在下面增加:
(Login1.FindControl("Database") as DropDownList).SelectedValue = "ERPS";
 //預設為ERPS
頁面Session Timeout時間調整該如何設定? 開啟LogOn.aspx.cs中設定Session.Timeout = 60;另外, 一般IIS上會有整個網站逾時的設置,一般預設是20分鐘。
主畫面的Menu可以隱藏嗎? 您可以在MainPage_Flow.aspx或MainPage.aspx中,把JQMenuButton2的Visible設為false把logOutMenuButton和changePasswordMenuButton的display設為none把整個title="Menu"的Div都注釋掉
請問在.cs內要抓取資料庫的資料(select * from xxxx),有範例嗎? DataSet ds = EFClientTools.ClientUtility.ExecuteSQL("ERPS", "select * from table");
JSON轉DataTable(C#)的方法 & DataGrid資料轉成JSON格式字串的方法(JQuery)
JSON轉DataTable (C#)
//假設ACC_Data是JSON字串
DataTable ACC_DT = (DataTable)Newtonsoft.Json.JsonConvert.DeserializeObject(ACC_Data, (typeof(DataTable)));

DataGrid資料轉成JSON格式字串 (JQuery)
var ACC_DATA = $('#dataGridACC').datagrid('getRows');
ACC_DATA = JSON.stringify(ACC_DATA);
EEP Workflow jQuery Web Form 參數傳遞範例
function dataFormMasterOnLoadSuccess() {
    var parameter = Request.getQueryStringByName2("P1");
    if (parameter == "P1") {
        $('#dataFormMaster input, #dataFormMaster select, 
 #dataFormMaster textarea, #dataFormMaster button').attr('disabled', 'disabled');
        $('#dataFormMasterServiceRole').removeAttr('disabled');
    }
}

//但是EEP2012、EEP2013
//請改成  var parameters = Request.getQueryStringByName("P1");
資料來源使用LoadData方式的Grid匯出Excel方法

.ASPX部分:

//toolitemonclick事件

function exportlocal() {

     var datagrid = $('#JQDataGrid7');//要匯出EXCELGRID ID

     var exportFields = [];

     var fields = datagrid.datagrid('getColumnFields', true);

      for (var i = 0; i < fields.length; i++) {

                exportFields.push({ field: fields[i], title: datagrid.datagrid('getColumnOption', fields[i]).title });

            }

            fields = datagrid.datagrid('getColumnFields');

      for (var i = 0; i < fields.length; i++) {

                exportFields.push({ field: fields[i], title: datagrid.datagrid('getColumnOption', fields[i]).title });

            }

  var rows = $('#JQDataGrid7').datagrid('getRows');//要匯出EXCELGRID ID

            $.ajax({

                type: "POST",

                data: { mode: 'export', fields: $.toJSONString(exportFields), rows: $.toJSONString(rows) },

                cache: false,

                async: false,

                success: function (data) {

                    window.open('../handler/JqFileHandler.ashx?File=' + data, 'download');

                }

            });

        }

.cs部分

funtion

public override void ProcessRequest(HttpContext context)

    {

        if (!JqHttpHandler.ProcessRequest(context))

        {

            base.ProcessRequest(context);

        }

    }

改為

public override void ProcessRequest(HttpContext context)

    {

        if (context.Request.Form["mode"] == "export")

        {

            Export(context);

        }

        else if (!JqHttpHandler.ProcessRequest(context))

        {

            base.ProcessRequest(context);

        }

    }

//新增下面的funtion

private void Export(HttpContext context)

    {

        var exportTable = new System.Data.DataTable();

 

        var fields = (Newtonsoft.Json.Linq.JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(context.Request.Form["fields"]);

        var rows = (Newtonsoft.Json.Linq.JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(context.Request.Form["rows"]);

        foreach (Newtonsoft.Json.Linq.JObject field in fields)

        {

            var columnType = typeof(string);

            if (rows.Count > 0)

            {

                var obj = rows[0] as Newtonsoft.Json.Linq.JObject;

                var value = obj[(string)field["field"]];

                if (value.Type == Newtonsoft.Json.Linq.JTokenType.Integer)

                {

                    columnType = typeof(int);

                }

                else if (value.Type == Newtonsoft.Json.Linq.JTokenType.Float)

                {

                    columnType = typeof(double);

                }

            }

            exportTable.Columns.Add(new System.Data.DataColumn((string)field["field"], columnType) { Caption = (string)field["title"] });

        }

        foreach (Newtonsoft.Json.Linq.JObject row in rows)

        {

            var dataRow = exportTable.NewRow();

            foreach (var column in row)

            {

                if (exportTable.Columns.Contains(column.Key))

                {

                    dataRow[column.Key] = column.Value.ToString();

                }

            }

            exportTable.Rows.Add(dataRow);

        }

 

        var fileName = string.Format("{0}.xls", DateTime.Now.ToString("yyyyMMddHHmmss"));

        var path = string.Format("../Files/{0}", fileName);

        JQUtility.ExportToExcel(exportTable, HttpContext.Current.Server.MapPath(path), "", new List<string>());

        context.Response.ContentType = "text/plain";

        context.Response.Write(fileName);

    }

 

openImport功能簡述
1.openImport功能匯入必須為xml檔,可將EEP透過exportGrid功能匯出後的xls檔,再使用Office的EXCEL程式開啟後另存為xml格式即可。
2.預設匯入時,xml資料中不含欄位名稱,第一行直接為Data。
3.畫面DataGrid中的資料匯入後直接被取代(LoadData、不分頁),會把後來匯入的資料做新增,不會刪除資料。
4.KEY值若重複會直接跳出SQL語法錯誤訊息。
5.如果KEY為自增值可正常使用。
6.DataGrid須設定為AutoApply=False &在Tooltem中增加OnClick=apply的按鈕 & AllowAdd=True