ExtJs學習筆記(1)ItemSelector (用戶關係左右選擇組件)

這是本地讀取數據。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>Tree</title>
<link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="MultiSelect.css" />
<script type="text/javascript" src="../../../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../../ext-all.js"></script>
<script type="text/javascript" src="MultiSelect.js"></script>
<script type="text/javascript" src="ItemSelector.js"></script>
<script type="text/javascript">
Ext.onReady(function()
{
var leftStore = new Ext.data.ArrayStore(
{
data: [
['1', '卡卡'],
['2', '羅納爾多'],
['3', '梅西'],
['4', '羅納爾迪尼奧'],
['5', '阿奎羅'],
['6', '本澤馬'],
['7', '哈維'],
['8', '比利亞'],
['10', '小豌豆'],
['11', '特略'],
['12', '法爾考'],
['13', '蘇亞雷斯']
],
fields: ['id','name'],
sortInfo: {
field: 'name',
direction: 'ASC'
}
});
var rightStore = new Ext.data.ArrayStore(
{
data: [
['1', 'C羅'],
['2', '內馬爾'],
['3', '法布雷加斯']
],
fields: ['id','name'],
sortInfo: {
field: 'name',
direction: 'ASC'
}
});
var userForm = new Ext.form.FormPanel(
{
items : [
{
xtype : 'itemselector',
id:'userSelector',
anchor : '100%',
name : 'userSelector',
hideLabel : true,
renderTo:'ItemSelector',
style : 'margin-top:10px;margin-left:10px;margin-right:10px;',
imagePath : 'images/',
multiselects : [
{
id:'left',
width : 150,
height : 250,
legend :'待選人員',
store :leftStore,
valueField : 'id',
displayField : 'name'
},
{
id:'right',
width : 150,
height : 250,
legend : '已選人員',
store:rightStore,
valueField : 'id',
displayField : 'name',
tbar : [
{
text : '清除',
handler : function() {
userForm.getForm().findField('userSelector').reset();
}
}]
}
],
}]
});//form
}
);
</script>
</head>
<body>
<div ></div>
</body>
</html>
在使用ItemSelector時需要引用3個文件:

按照以上代碼就可以使用讀取本地數據的用戶選擇組件了。
如果想讀取後台數據,還需要稍微改動一下store。
//待選人員數據
var leftStore = new Ext.data.Store(
{
id:'leftStore',
proxy : new Ext.data.HttpProxy({url:"/Web/Manage/DeskTop/JSON/CommonFile/UserSelector.aspx"}),
reader: new Ext.data.JsonReader(
{
totalProperty:'totalCount',
root:'root'
},
[
{name:'id',type:'int'},
{name:'name',type:'string'}
]
)
});
leftStore.load();
url中的地址就是用來讀取後台數據的。
UserSelector.aspx
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;
public partial class Manage_DeskTop_JSON_CommonFile_UserSelector : System.Web.UI.Page
{
private int count = 0;
private SQL sqlManage = null;
private StringBuilder sb = new StringBuilder();
private StringBuilder jsonBody = new StringBuilder();
private string sql = null;
private SqlDataReader sr = null;
private bool IsSuccess;
private string error = null;
protected void Page_Load(object sender, EventArgs e)
{
try
{
sqlManage = new SQL();
sql = "select Id,UserName from UserInfo";
sr = sqlManage.getDataReader(sql);
jsonBody.Append("root:[");
while (sr.Read())
{
if (count != 0)
{
jsonBody.Append(",");
}
jsonBody.Append("{");
jsonBody.AppendFormat("id:'{0}',name:'{1}'", sr[0].ToString(), sr[1].ToString());
jsonBody.Append("}");
count++;
}
jsonBody.Append("]");
this.IsSuccess = true;
}
catch (Exception exp)
{
this.IsSuccess = false;
error = exp.Message;
}
if (this.IsSuccess == true)
{
sb.Append("{");
sb.AppendFormat("totalCount:{0}", count);
sb.Append(",");
sb.Append(jsonBody);
sb.Append("}");
Response.Write(sb);
}
else
{
Response.Write("{success:false,error:'" + error + "'}");
}
}
}
最後更新:2017-04-03 16:48:57