使用AJAXPRO实现级联菜单,并获取下拉框的值
获取级联后值的方法是在 下拉框后面加一个TEXTBOX存贮他的值,要用的时候直接取他的值便可 还有就是在前台页码的PAGES中加入enableEventValidation="false".
HTML代码:
<tr class="tc">
<td class="tc">申 請 人:</td>
<td style="WIDTH: 284px">
<asp:DropDownList ID="ddldept" runat="server">
</asp:DropDownList>
<%-- onchange="checkRePeo(this);"--%>
<asp:dropdownlist id="ddlRePeo" Runat="server" onchange="change1(this)"></asp:dropdownlist>
<asp:TextBox ID="left1" runat="server" Width="0px"></asp:TextBox>
</td>
<td class="tc">代 理 人:</td>
<td><asp:dropdownlist id="ddlActPeo" Runat="server" onchange="change2(this)"></asp:dropdownlist>
<asp:TextBox ID="right2" runat="server" Width="0px"></asp:TextBox>
</td>
</tr>
JS代码:
<script>
var uid = "<%=uid%>";
var fno = "<%=fno%>";
var sno = "<%=sno%>";
itemEditPage = "Form.iedit.aspx";
hs_width = "700";
hs_height = "400";
var timeunit = 0;
var holiType = 0;
var YearMax = "";
var MinUnit = "";
var MaxDays = 0;
var IsFile = 0;
var HoliName = "";
var Cat1 = "";
var Car2 = "";
var Cat3 = "";
var Cat4 = "";
var RePeo = "";
function change1(obj)
{
document.getElementById("left1").value = obj.options[obj.selectedIndex].value;
}
function change2(obj)
{
document.getElementById("right2").value = obj.options[obj.selectedIndex].value;
}
function getBid(s){
return document.getElementById(s);
}
function getBmc(s){
return document.getElementByName(s);
}
function showNext(sid,obj,obj2)
{
if(sid==null || sid=="" || sid.length<1)return;
var slt =getBid(obj);
var slt2=getBid(obj2);
var v = SC.Modules.EForm_holi.Form.getNextClass(sid).value;
if (v != null){
if(v != null && typeof(v) == "object" && v.Tables != null)
{
slt.length = 0;
slt2.length=0;
slt.options.add(new Option("請選擇",0));
slt2.options.add(new Option("請選擇",0));
for(var i=0; i<v.Tables[0].Rows.length; i++)
{
var EmpNo =v.Tables[0].Rows[i].EmpNo;
var EmpName = v.Tables[0].Rows[i].EmpName;
slt.options.add(new Option(EmpName,EmpNo));
slt2.options.add(new Option(EmpName,EmpNo));
}
}
}
return;
}
</script>
后台代码:
[AjaxPro.AjaxMethod()]
public DataSet getNextClass(string cid)
{
string sql = "select EmpNo, (EmpNo + '/' + CName ) as EmpName from HREmpM where deptNo = '"+cid+"'";
try
{
DataSet ds = MySqlBase.GetVarsAsDataSet(sql);
return ds;
}
catch
{
//throw;
return null;
}
}
HTML代码:
<tr class="tc">
<td class="tc">申 請 人:</td>
<td style="WIDTH: 284px">
<asp:DropDownList ID="ddldept" runat="server">
</asp:DropDownList>
<%-- onchange="checkRePeo(this);"--%>
<asp:dropdownlist id="ddlRePeo" Runat="server" onchange="change1(this)"></asp:dropdownlist>
<asp:TextBox ID="left1" runat="server" Width="0px"></asp:TextBox>
</td>
<td class="tc">代 理 人:</td>
<td><asp:dropdownlist id="ddlActPeo" Runat="server" onchange="change2(this)"></asp:dropdownlist>
<asp:TextBox ID="right2" runat="server" Width="0px"></asp:TextBox>
</td>
</tr>
JS代码:
<script>
var uid = "<%=uid%>";
var fno = "<%=fno%>";
var sno = "<%=sno%>";
itemEditPage = "Form.iedit.aspx";
hs_width = "700";
hs_height = "400";
var timeunit = 0;
var holiType = 0;
var YearMax = "";
var MinUnit = "";
var MaxDays = 0;
var IsFile = 0;
var HoliName = "";
var Cat1 = "";
var Car2 = "";
var Cat3 = "";
var Cat4 = "";
var RePeo = "";
function change1(obj)
{
document.getElementById("left1").value = obj.options[obj.selectedIndex].value;
}
function change2(obj)
{
document.getElementById("right2").value = obj.options[obj.selectedIndex].value;
}
function getBid(s){
return document.getElementById(s);
}
function getBmc(s){
return document.getElementByName(s);
}
function showNext(sid,obj,obj2)
{
if(sid==null || sid=="" || sid.length<1)return;
var slt =getBid(obj);
var slt2=getBid(obj2);
var v = SC.Modules.EForm_holi.Form.getNextClass(sid).value;
if (v != null){
if(v != null && typeof(v) == "object" && v.Tables != null)
{
slt.length = 0;
slt2.length=0;
slt.options.add(new Option("請選擇",0));
slt2.options.add(new Option("請選擇",0));
for(var i=0; i<v.Tables[0].Rows.length; i++)
{
var EmpNo =v.Tables[0].Rows[i].EmpNo;
var EmpName = v.Tables[0].Rows[i].EmpName;
slt.options.add(new Option(EmpName,EmpNo));
slt2.options.add(new Option(EmpName,EmpNo));
}
}
}
return;
}
</script>
后台代码:
[AjaxPro.AjaxMethod()]
public DataSet getNextClass(string cid)
{
string sql = "select EmpNo, (EmpNo + '/' + CName ) as EmpName from HREmpM where deptNo = '"+cid+"'";
try
{
DataSet ds = MySqlBase.GetVarsAsDataSet(sql);
return ds;
}
catch
{
//throw;
return null;
}
}