Easyui中combobox獲取頁面重新整理前的值為預設值
阿新 • • 發佈:2019-01-04
在考核系統中,對於combobox使用了很多,真是讓人歡喜讓人悲呀...這是幾點使用的心得
1. 級聯選單。
Easyui中combobox的級聯選單還是很方便使用的。,拖放兩個combobox控制元件,設定onSelect方法即可。
注意:在級聯的時候可能第二級選單會隨著第一級選單的改變不斷增加列表,所以reload之前clear一下。
例如:
2.頁面重新整理後如何顯示重新整理前的combobox值。<a>年份</a> <input id="year" name="year" class="easyui-combobox" data-options=" editable:false, panelHeight:'auto', valueField: 'yeartime', textField: 'yeartime', url: 'CountyQuality.ashx?test=QueryYear', onSelect: function(rec){ var url = 'CountyQuality.ashx?test=QueryProperty&yeartime='+rec.yeartime; $('#target').combobox('clear'), $('#target').combobox('reload', url); }" /> <br /> <br /> <a>考核指標</a> <input id="target" name="target" class="easyui-combobox" data-options=" editable:false, valueField:'id', textField:'name', onSelect:function(){ QueryData(); } " />
有的可能會說設定一個隱藏控制元件,將combobox值賦予控制元件value,重新整理後顯示,那麼重新整理後你還有值嗎?
解決辦法:提交表單。
2.1 將form中控制元件也就是包括combobox控制元件的form,提交表單到自身
$("#sessionRefresh").submit();
#內是form的id,提交表單後在頁面初始化的方法內獲取表單值。
Request.Params[""]方法,[ ]內是控制元件的name名稱,這個方法相當於Request.QueryString()和Request.Form()的結合體吧,很好用。//窗體載入時觸發的事件,獲取時間 $(function () { var getYear = "<%=Request.Params["year"]%>"; //表單提交後的年份 }
2.2 迴圈比對combobox列表項的值,選中該值為預設項。
頁面重新整理後,由於combobox自身的url使其初始化就有列表項,所需的只是將重新整理前的值成為預設值。
這裡unitName即為頁面獲取的值,相當於上面的getYear。通過easyui中getData的方法,使下拉列表項成為一個實體,迴圈比對實體的textField值,然後通過select方法選中其valueField即可。var countyName = $('#CountryInfo').combobox('getData'); for (var i = 0; i < countyName.length; i++) { //alert(countyName[i].departmentname) if (unitName == countyName[i].departmentname) { $('#CountryInfo').combobox('select', countyName[i].cityid); //迴圈判斷,如果某項一致,則該項選中 } }
Easyui的文件很齊全,不過有些功能都沒有清楚說明解決辦法,研究了幾天終於解決了這個小難點,希望對使用的朋友有幫助吧。