Jquery编辑单元格-上拉框
var tdNode1 = $("td[field='selectItemName']");
//让"选项"这一列的每个单元格拥有click事件
//注:索引从1开始
for(var i=1;i<data.rows.length+1;i++){
$(tdNode1[i]).bind('click',tdClick);
}
//td点击事件
function tdClick(){
var td = $(this);
var trIndex = td.parent("tr").index();
//alert(trIndex);
//给参数赋值
DxZhFx.midCode = data.rows[trIndex]["midCode"];
DxZhFx.trendCode = data.rows[trIndex]["trendCode"];
DxZhFx.id = data.rows[trIndex]["id"];
var tdText = td.text();
//将td的内容清空
td.empty();
//创建select下拉框
var input = $("<select id='"+DxZhFx.trendCode+"'></select>");
//下拉框中的数据源加载
var aiStore = new Ext.data.Store({
proxy: new Ext.ux.data.DWRProxy({
method: dxDWRFacade.getSelectItem,
listeners:{
loadexection:function(proxy,o,response,e){
Ext.ux.MessageBox.info(e);
}
}
}),
reader: new Ext.data.JsonReader({
root:'root',
totalProperty:'totalProperty'
},[
{name:'selectItemCode',mapping:'selectItemCode'},
{name:'selectItemName',mapping:'selectItemName'}
])
});
//下拉框获得焦点事件
input.focus(function(){
});
//基本参数设置
Ext.apply(aiStore.baseParams, {
midCode:DxZhFx.midCode,
trendCode:DxZhFx.trendCode
});
aiStore.load();
aiStore.on('load',function(){
var pp = "";
for(var i=0;i<aiStore.data.length;i++){
var sat = aiStore.getAt(i);
pp += "<option value="+sat.data['selectItemCode']+">"+sat.data['selectItemName']+"</option>";
}
input = $("<select id='"+DxZhFx.trendCode+"'>"+pp+"</select>");
//将select下拉框放到td中
td.append(input);
//将td中原来的文本赋值到select下拉框中选中
$("select").find("option[text='"+tdText+"']").attr("selected", true);
$("select").focus();
//下拉框失去焦点事件
input.change(function(){
//获取下拉框中选中的值
var selectVal = $("select").val();
//保存改变的值
dxDWRFacade.updateDxzhfx(selectVal,DxZhFx.id);
//获取下拉框中选中的文本
var selectText = $("select").find("option:selected").text();
td.html("<u style='cursor:pointer;' >"+selectText+"</u>");
//让td重新拥有点击事件
td.click(tdClick);
});
input.blur(function(){
//获取下拉框中选中的值
var selectText = $("select").find("option:selected").text();
td.html("<u style='cursor:pointer;' >"+selectText+"</u>");
//让td重新拥有点击事件
td.click(tdClick);
});
});
$("select").select();
td.unbind("click");
}