SharePoint Designer 修改EditForm.aspx 页面,实现两个Select控件联动效果,实现方式:添加Load事件,在Load时给Select控件注册控件的onpropertychange事件。
<script type="text/javascript">
/* Bengin of addLoadEvent, Form Load Event. @Echo Liu*/
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
var m_muLastSelectIndex = -1;
var m_processerArray;
var m_objMU;
var m_objProcessOwner;
/* Filter ProcessOwner by MU */
function FilterProcessorOwnerByMU()
{
if(m_objMU.selectedIndex != m_muLastSelectIndex)
{
m_muLastSelectIndex = m_objMU.selectedIndex;
var mu3 = m_objMU.options(m_muLastSelectIndex).value;
for(i = m_objProcessOwner.options.length - 1; i >= 0; i--)
{
m_objProcessOwner.options.remove(i);
}
for(i= 0; i < m_processerArray.length; i++)
{
var arrayPO = m_processerArray[i];
if(arrayPO[0].indexOf(mu3) == 0)
{
var oOption3 = document.createElement("OPTION");
m_objProcessOwner.options.add(oOption3);
oOption3.value = arrayPO[0];
oOption3.text = arrayPO[1];
}
}
}
}
function MUModelInitEvents()
{
var collSELECT = document.all.tags("SELECT");
for (i=0; i< collSELECT.length; i++)
{
var objCurrent = collSELECT(i);
if(objCurrent.title == "MU")
{
m_objMU = objCurrent;
}
else if(objCurrent.title == "ProcessOwner")
{
m_objProcessOwner = objCurrent;
m_processerArray = new Array();
for (j=0; j < objCurrent.options.length; j++)
{
m_processerArray[j] = new Array();
m_processerArray[j][0] = objCurrent.options(j).value;
m_processerArray[j][1] = objCurrent.options(j).text;
}
}
}
m_objMU.onpropertychange = FilterProcessorOwnerByMU;
FilterProcessorOwnerByMU();
}
addLoadEvent(MUModelInitEvents);
addLoadEvent(function() {
/* more code to run on page load */
});
/* End of addLoadEvent @Echo Liu */
</script>