从ListBox控件lbx_Personal( 个人生命周期)和lbx_Enterprise( 企业生命周期)选择ListItem到lbx_LifeCircle(综合生命周期),使用隐藏域hdn_LifeCircle( 类别:选择的是个人类型还是企业类型还是个人企业类型都有)和hdn_LCList(具体生命周期ID)
1.页面加载时给ListBox添加Attribute:
lbx_LifeCircle.Attributes.Add("ondblclick", "Remove()"); //双击综合生命周期ListBox选项删除选择的生命周期信息
lbx_Enterprise.Attributes.Add("ondblclick", "AddEnterprise()"); //双击企业生命周期ListBox添加企业生命周期信息
lbx_Personal.Attributes.Add("ondblclick", "AddPersonal()"); //双击个人生命周期ListBox添加个人生命周期信息
2.初始化个人和企业生命周期信息省略
3.js实现
function Remove() //双击综合生命周期ListBox选项删除选择的生命周期信息
{
var en = document.getElementById("lbx_Enterprise"); //企业生命周期信息ListBox
var p = document.getElementById("lbx_Personal"); //个人生命周期信息ListBox
var lc = document.getElementById("lbx_LifeCircle"); //综合生命周期信息ListBox
var hdn = document.getElementById("hdn_LifeCircle"); //类别
var list = document.getElementById("hdn_LCList"); //选择的生命周期列表,每项生命周期信息均包含生命周期文字描述和ID,文字描述和ID中间用"|"隔开,不同的生命周期项之间用","隔开
if(lc.options.length == 0) //如果综合生命周期ListBox中没有ListItem,取消双击事件
{
event.returnValue = false;
return;
}
list.value = list.value.replace(lc.options[lc.selectedIndex].innerText+"|"+lc.options[lc.selectedIndex].value+",",""); //在隐藏域中去掉生命周期
lc.options.remove(lc.selectedIndex); //在综合生命周期ListBox中去掉ListItem
if(lc.options.length > 0)
{
var isPersonalExist = false;
var isEnterpriseExist = false;
for(var i=0;i<lc.options.length;i++)
{
if(p.options.length > 0)
{
for(var pi=0;pi<p.options.length;pi++) //判断是否选择了个人生命周期信息
{
if(p.options[pi].innerText == lc.options[i].innerText)
{
isPersonalExist = true;
break;
}
}
}
if(en.options.length > 0) //判断是否选择了企业生命周期信息
{
for(var eni = 0;eni<en.options.length;eni++)
{
if(en.options[eni].innerText == lc.options[i].innerText)
{
isEnterpriseExist = true;
break;
}
}
}
}
if(isPersonalExist && isEnterpriseExist) //如果个人和企业生命周期信息都选择了生命周期类别为2
{
hdn.value = "2";
}
else if(isPersonalExist && !isEnterpriseExist) //如果只选择了个人生命周期信息生命周期类别为0
{
hdn.value = "0";
}
else //如果只选择了企业生命周期信息生命周期类别为1
{
hdn.value = "1";
}
}
else //如果没有生命周期信息,生命周期类别为9
{
hdn.value = "9";
}
}
function AddPersonal() //添加个人生命周期信息
{
var p = document.getElementById("lbx_Personal");
var lc = document.getElementById("lbx_LifeCircle");
var hdn = document.getElementById("hdn_LifeCircle");
var lcList = document.getElementById("hdn_LCList");
var isExist = false;
for(var i=0;i<lc.options.length;i++) //判断要添加的ListItem是否已添加
{
if(p.options[p.selectedIndex].value == lc.options[i].value)
{
isExist = true;
break;
}
}
if(!isExist) //如果要添加的ListItem没有添加到生命周期列表则添加进去并添加到隐藏域
{
var newOption = document.createElement("OPTION");
newOption.text = p.options[p.selectedIndex].innerText;
newOption.value = p.options[p.selectedIndex].value;
if(newOption.text != "")
{
lc.options.add(newOption);
}
lcList.value += newOption.text + "|" + newOption.value + ",";
}
//调整生命周期类别
if(hdn.value == "9")
{
hdn.value = "0";
}
else if(hdn.value == "1")
{
hdn.value = "2";
}
}
function AddEnterprise() //添加企业生命周期信息
{
var en = document.getElementById("lbx_Enterprise");
var lc = document.getElementById("lbx_LifeCircle");
var hdn = document.getElementById("hdn_LifeCircle");
var lcList = document.getElementById("hdn_LCList");
var isExist = false;
for(var i=0;i<lc.options.length;i++)
{
if(en.options[en.selectedIndex].value == lc.options[i].value)
{
isExist = true;
break;
}
}
if(!isExist)
{
var newOption = document.createElement("OPTION");
newOption.text = en.options[en.selectedIndex].innerText;
newOption.value = en.options[en.selectedIndex].value;
if(newOption.text != "")
{
lc.options.add(newOption);
}
lcList.value += newOption.text + "|" + newOption.value + ",";
}
if(hdn.value == "9")
{
hdn.value = "1";
}
else if(hdn.value == "0")
{
hdn.value = "2";
}
}