62,041
社区成员
发帖
与我相关
我的任务
分享
//下拉列表类--不同表不同字段
public String DropDownListld(string tablename, String field_id, String field_name, String field_order, string default_value)
{
db.select(dt, "select " + field_id + "," + field_name + " from " + tablename + " order by " + field_order);
sb.Append("<SELECT size=1 name=" + field_id + " class=\"selectld\">");
for (int i = 0; i < dt.Rows.Count; i++)
{
if ((default_value == null || default_value.Equals("")) && i == 0)
{
sb.Append("<OPTION value=\"" + dt.Rows[i][field_id] + "\" selected>" + dt.Rows[i][field_name] + "</OPTION>");
}
else if (default_value != null && dt.Rows[i][field_id].ToString().Equals(default_value))
{
sb.Append("<OPTION value=\"" + dt.Rows[i][field_id] + "\" selected>" + dt.Rows[i][field_name] + "</OPTION>");
}
else
{
sb.Append("<OPTION value=\"" + dt.Rows[i][field_id] + "\" >" + dt.Rows[i][field_name] + "</OPTION>");
}
}
sb.Append("</SELECT>");
return sb.ToString();
}
//问题是:
//现在有3个数据库表,表A里其中有两字段AId、AName;表B里其中有两字段BId、BName;表A和表B通过表C关联,表C里其中有两字段AId、BId(即表A和表B里的AId、BId)。
//想要的效果是:
//下拉列表A从表A里取数据,下拉列表B从表B里取数据。通过表C来实现联动。
//举例如下:
//表A 表B 表C
//—————————————————————
//AId AName | BId BName | AId BId
//a1 广东 | b1 广州 | a1 b1
//a2 广西 | b2 肇庆 | a3 b6
//a3 河南 | b3 深圳 | a1 b3
//a4 河北 | b4 南宁 | a2 b4
//a5 山东 | b5 桂林 | a1 b2
//a6 山西 | b6 郑州 | a1 b7
//a7 湖南 | b7 某地 | a2 b5
//a7 湖南 | b8 长沙 | a2 b7
//… … … … … … … …
//则,
//列表A为:
<select name="a" id="alist" onchange="">
<option value="" selected>-请选择-</option>
<option value="a1">广东</option>
<option value="a2">广西</option>
<option value="a3">河南</option>
<option value="a4">河北</option>
<option value="a5">山东</option>
<option value="a6">山西</option>
<option value="a7">湖南</option>
</select>
//当列表A(大类)选择广东时,根据表C,列表B(小类)为:
<select name="b" id="blist">
<option value="" selected>-请选择-</option>
<option value="b1">广州</option>
<option value="b2">肇庆</option>
<option value="b3">深圳</option>
<option value="b7">某地</option>
</select>
//当列表A选择不同时,根据表C,列表B实现联动
//需要注意的是,表C中的BId也可以相同(如例子中的某地(b7)既在列表A选择广东时列表B里有,列表A选择广西时列表B里也要有)。
<%Response.Write(new com.ldh.util.HtmlDataBase().DropDownList("A", "AId", "AName", "AId", dt.Rows[0]["AId"].ToString()));%>
<script type="text/javascript">
function updatePage() {
if (http_request.readyState == 4) {
var response = http_request.responseText;
document.getElementById("aaa").innerHTML = response;
}
}
function callServer() {
var name = document.getElementById("DeptID").value;
if ((name == null) || (name == "")) return;
var url = "../com/getSales.aspx";
var pp="name=" + name ;
send_request("POST",url,pp,"XML",updatePage);
}
</script>
<div id="aaa"></div>