1. 程式人生 > >datagrid 內嵌 combotree 顯示 valueField 而不是 valueText 的解決辦法

datagrid 內嵌 combotree 顯示 valueField 而不是 valueText 的解決辦法

問題描述:獲取部門樹,從資料庫中返回的資料格式為{id: text:},其中id為部門ID,text為部門名稱。在 datagrid 中 unitName(部門名稱,下拉選)為  combotree  型別。當編輯某一行時,選擇相應部門名稱,但是結束行編輯時該列欄位顯示的是  【部門ID】 而不是 【部門名稱】。

1)在 部門下拉樹  中選擇  銷售部


2)選擇之後會在  部門下拉樹  中顯示  銷售部


3) 但是當結束改行編輯時(endEdit),部門下拉樹 就會顯示 【 部門ID】  而不是  【部門名稱】


解決方法:

1  定義全域性變數 unitName

//接收部門下拉樹的部門名稱
var unitName = undefined;

2  在  部門下拉樹  中的 onSelect  時間中為 unitName 賦值
					{field:'receivablesUnitName',title:'回款部門',width:100,
						editor:{
							type:'combotree',
							options:{
								required:true,
								valueField : 'id',
								textField : 'text',
								data : unitList,
								panelHeight:"auto",
								onSelect : function(record){
									var edUnitId = $("#receivablesRecordsDatagrid").datagrid('getEditor',{
										index : lastEditRowIndex,
										field : 'receivablesUnitId',
									});
									$(edUnitId.target).val(record.id);
									//為 unitTreeName賦值
									unitTreeName = record.text;
								
								}
							}
						},
//						formatter : function(value,row,index){
//							if(row.eventId != undefined && row.eventId.length > 15){
//								return value;
//							}else{
//								return unitTreeName;
//							}
//						}
					},

3  在OnEndEdit 事件中 為 部門下拉樹  賦值顯示
		onEndEdit : function(index,row){
			if(unitTreeName == undefined){
				$("#receivablesRecordsDatagrid").datagrid('getRows')[index]['receivablesUnitName'] = unitTreeName;
			}
		}

解決結果圖:


除了這種方法,還可以通過 formatter 來解決這樣的問題。因為無論是載入資料與編輯結束時datagrid都會執行formatter函式,所以我們可以用它來輸出我們想要的內容。這種方法已經寫出,處在贅述,但是當記錄表中已經存在資料時,需要做一個判斷,這裡通過 eventId 來區分是資料庫中已經存在記錄還是新增的記錄(在這裡已存在的 eventId 是一個長度為38位的字串,新增的 eventId 是一個長度為4的字串)

總結:

1) formatter 無論載入資料或編輯結束都會執行

2) onEndEdit  事件 與 onAfterEdit 事件的不同

3)getEditor 只能對正在編輯的行起作用,當某一行已經結束編輯,getEditor 獲取的值為 null

4)為 datagrid 中某一行的某一列賦值 ,可以通過以下語句

$("#receivablesRecordsDatagrid").datagrid('getRows')[index]['receivablesUnitName'] = unitTreeName;

index為行號, receivablesUnitName為列名

5)  onSelect 中 record 儲存的是  combobox 所選擇的資料  id  和  text  值

相關推薦

datagrid combotree 顯示 valueField valueText解決辦法

問題描述:獲取部門樹,從資料庫中返回的資料格式為{id: text:},其中id為部門ID,text為部門名稱。在 datagrid 中 unitName(部門名稱,下拉選)為  combotree  型別。當編輯某一行時,選擇相應部門名稱,但是結束行編輯時該列欄位顯示的是

關於子窗體開啟被父窗體的圖片框遮擋顯示的問題

今天遇到這樣個問題。我在主窗體下設定的子窗體沒法顯示,其實是被主窗體內的圖片框遮擋。那麼問題來了。。我該怎麼讓它顯示出來呢? 問了同學,讓我百度自己摸索。哈哈,還好機智的我解決了問題。 在vb程式中

Easyui datagrid 編輯結束時combobox顯示value顯示text

在呼叫datgrid編輯結束時  $('#dg').datagrid('endEdit', editIndex); datagrid的combobox會顯示出value, 這是因為easyui在我們編輯結束時為了方便使用更改的值而記錄下了combobox的value而不

如何設定顯示內容顯示物件

# coding=utf-8 class Publish(): def __init__(self, name): self.name = name def __str__(self): return self.name # def __rep

命令列操作oracle,顯示英文是中文

在環境變數,而不是系統變數,平常總用系統變數,這次用環境變數可以解決中文顯示問題,增加環境變數,如下: 設定NLS_LANG為SIMPLIFIED CHINESE_CHINA.ZHS16GBK 具體操作如下圖: 右鍵我的電腦,選擇屬性按鈕   &nb

easyui 行編輯儲存後combobox顯示value顯示text解決方案

點選儲存時觸發onEndEdit函式: //   column_type為combobox的filed名字。  function onEndEdit(index, row){     var ed_column_type = $(this).datagrid('getEd

瀏覽器 WebBrowser 直接從記憶體資料顯示圖片是連結一個外部檔案

如何讓網頁裡面的圖片,直接從記憶體資料載入,而不是一個圖片檔案的連結 查了一些資料,基本概念如下: 2. Data URI scheme 包括: data:,文字資料 data:text/plain,文字資料 data:text/html,HTML程式碼 data:t

解決apph5中ios獲取到title,vue router 修改title(IOS 下動態改變title失效)

在ios下app  設定document.title = "titleName" 失效,原因是在IOS webview中網頁標題只加載一次,動態改變是無效的。 vue中npm install  vue-wechat-title元件 在路由配置中新增  meta物件 如:

跳出層for迴圈,執行外層for迴圈剩餘語句

在專案中遇到需要跳出內層for迴圈的同時,不執行外層for迴圈剩餘語句,直接開始執行下一次外層for迴圈的問題。 我個人並不想使用變數來判斷是否continue,最後發現可以通過為for迴圈命名,然後continue至特定的for迴圈來解決這個問題。 於是寫個下面的例子記錄

shell下用ping 測試一個網路是否通,只顯示結果顯示過程輸出

要求:用ping 測試一個網址但只顯示是否通而不顯示過程輸出 if [ "`ping -c 1 A.B.C.D `" ]; then echo yes && exit 0 else echo no && exit 0 fi

Fcitx輸入中文時顯示候選詞框的解決辦法

code rem 不顯示 module log highlight true sudo bash 在非KDE桌面環境下,如果安裝了fcitx-module-kimpanel,可能會導致Fcitx輸入中文時不顯示候選詞框,移除該組件,然後重啟Fcixt。 $ sudo ap

vs警告 當前源代碼跟置的版本一致解決辦法

.net sdn studio 代碼 style 不一致 post 內置 解決 本文轉載於:http://blog.csdn.net/bull521/article/details/51334464 vs警告 當前源代碼跟內置的版本不一致解決辦法 1.刪除掉 我的文檔/vi

JQuery判斷radio屬性為空的時候錯誤提示信息顯示位置正確解決辦法

JQuery from表單驗證 radio input submit 只需要定義一個以下標簽即可以想讓錯誤信息顯示到哪裏就顯示到哪裏<label for="name" class="error"></label>說明:

使用iframe框架後的頁面,執行跳轉命令,目標頁面至iframe的子頁面的解決方法

問題描述:         在做專案的過程中,需要完成修改密碼後重新登入的功能,但是前端頁面使用了IFrame的框架,修改頁面內嵌在的index.html中, 重新登入的頁面就內嵌到原來的頁面中。 問題如圖所示: 修改密碼成功後: 出現問題,修改密碼頁面

針對eclipse安裝spring外掛安裝失敗或者後顯示spring檔案或者的解決辦法

在Eclipse上安裝springsource-tool-suite外掛會遇到安裝失敗,或者安裝後在preference或者工程目錄選單裡找不到spring這個資料夾選項。很多朋友可能會遇到這個問題。 而且有些朋友可能用慣了Eclipse不想在下載個STS。因為習慣了Eclipse,日久

火狐訪問所有HTTPS網站顯示連線安全解決辦法(徹底解決!!)

火狐訪問所有HTTPS網站顯示連線不安全解決辦法 1、最徹底,所有HTTPS站點都信任!! 參考:https://blog.csdn.net/u011650143/article/details/70303894 1)如有以下情況,點右邊的“高階”,看看自己的錯

Win10圖示顯示正常解決辦法

當快取檔案出現問題時,就會引發系統圖標顯示不正常; 1、由於圖示快取檔案是隱藏檔案,我們需要在資源管理器中將設定改為“顯示所有檔案”。 2、同時按下快捷鍵 Win+R,在開啟的執行視窗中輸入 %localappdata%,回車。 3、在開啟的資料夾中,找到 Iconcache.db,將其刪除。

Android:WebView載入url網頁顯示完整解決辦法

WebView基本用法 如果想要在APP裡面載入url網頁,或者html程式碼,首先我們會想到WebView,它的基本用法如下: webview_layout.xml <?xml version="1.0" encoding="utf-8"?&g

win10部分軟體視窗顯示完整解決辦法

方法摘錄如下 step1:開啟登錄檔 WIN+R,或者執行裡面輸入regedit step2:路徑[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]將原來的: "Microsoft

Eclipse打開,顯示開啟log檢視error解決辦法

最原始的方法,刪除目錄下的.metadata資料夾,再開啟。。不過專案就得一個個重建立了,import就是 這裡會出現問題,Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead