我详细说下2个表
biao1
deptid name
1 人事部
2 技术部
biao2
id name deptid
1 人事经理 1
2 人事助理 1
3 技术支持 2
4 技术分析 2
放在2个dropdownlist里面 来实现的功能是 点第一个dropdownlist的改变的时候第2个就显示出它部门下的职位 但是同时不能刷新整个页面。最好是详细代码谢谢
biao1
deptid name
1 人事部
2 技术部
biao2
id name deptid
1 人事经理 1
2 人事助理 1
3 技术支持 2
4 技术分析 2
放在2个dropdownlist里面 来实现的功能是 点第一个dropdownlist的改变的时候第2个就显示出它部门下的职位 但是同时不能刷新整个页面。最好是详细代码谢谢
JS+XML
JAJX
都可以
请求页以XML数据发送请求,服务页解析XML,回传结果
这种例子很多的
很容易做出你想要的效果来
var Xmlhttp;
function CreateXmlHttp()
{ if(window.ActiveXObject)
{
try
{
Xmlhttp=new ActiveXObject("Microsoft.XmlHTTP");
}
catch(e)
{
try{
Xmlhttp=new ActiveXObject("msXml2.XmlHTTP");
}
catch(ex){}
}
}
}
function AJAXSend()
{
//创建XmlHttpRequest对象
CreateXmlHttp();
if(!Xmlhttp)
{
alert("创建XmlhttpRequest发生异常!");
return false;
}
//获取地区下拉框的value值,作为条件发送
var ss=document.getElementById("Agent").value.substring(0,4);
//要发送的url,UserAJAX我专门用来取数据?area="+ss
url="userajax.aspx?area="+ss;
Xmlhttp.open("POST",url,false);
Xmlhttp.onreadystatechange=function()
{
if(Xmlhttp.readyState==4)
{
if(Xmlhttp.status==200)
{
//清空原下拉框
document.getElementById("DropDownList1").options.length=0;
//str为返回的一个字符串,形式为"0001/代理商1,0002/代理商2,0003/代理商3"
var str=Xmlhttp.responseText;
//将该字符串分割为数组形式
var strs=str.split(",");
// document.getElementById("DropDownList1").options.add(new Option("----------","000000"));
for(var i=0;i<strs.length-1;i++)
{
//获取value值(编号)
var a=strs[i].substring(0,strs[i].lastIndexOf("/"));
//获取绑定内容
var b=strs[i].substring(strs[i].lastIndexOf("/")+1,strs[i].length);
//绑定到下拉框
document.getElementById("DropDownList1").options.add(new Option(b,a));
}
}
}
}
Xmlhttp.send();
}
</script> <div><select id="Agent" name="Agent" runat=server onchange=AJAXSend();></select>
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList></div>另一个页面的CS代码
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("user id=sa;password=sa;database=KMS; server=(local)");
conn.Open();
string Area = Request.QueryString["area"].ToString();
string strsql = "SELECT * FROM KMS_ROLES where delflag=0 and deptid='"+Area+"'";
SqlDataAdapter sd = new SqlDataAdapter(strsql, conn); DataTable data = new DataTable();
sd.Fill(data);
string aa = "sdf/sdaf";
for (int i = 0; i < data.Rows.Count; i++)
{
if (aa == "")
{
aa = data.Rows[i]["rolesid"].ToString() + "/" + data.Rows[i]["rolesname"].ToString();
}
else
{
aa = data.Rows[i]["rolesid"].ToString() + "/" + data.Rows[i]["rolesname"].ToString()+","+aa;
}
}
Response.Write(aa);
}
function LoadCity(id,StateKey)
{
if(StateKey==-1)
{
o=document.getElementById(id);
o.options.length=0;
var oOption = document.createElement("option");
text=document.createTextNode("[请选择]");
oOption.appendChild(text);
oOption.value="-1";
o.appendChild(oOption);
return;
}
var ds=Sell_AddLeaguerInformation.GetCity(StateKey).value;
if(ds)
{
if(ds.Tables.length>0)
{
datatable=ds.Tables[0];
o=document.getElementById(id);
o.options.length=0;
var oOption = document.createElement("option");
text=document.createTextNode("[请选择]");
oOption.appendChild(text);
oOption.value="-1";
o.appendChild(oOption);
for(i=0;i<datatable.Rows.length;i++)
{
oOption = document.createElement("option");
text=document.createTextNode(datatable.Rows[i].CityName);
oOption.appendChild(text);
oOption.value=datatable.Rows[i].CityKey;
o.appendChild(oOption);
}
}
}
}
function initSell()
{
//省市
var ddlCompanyState=document.getElementById("ddlCompanyState");
ddlCompanyState.onchange=function (){LoadCity('ddlCompanyCity',this.value);}
var ddlFamilyState=document.getElementById("ddlFamilyState");
ddlFamilyState.onchange=function (){LoadCity('ddlFamilyCity',this.value);}
form1.txtBirthday.onclick=function(){setday(this);};
}
去看看吧