二级联动的问题

快乐的毛毛虫 2010-01-12 11:16:25
刚才那个没有描述清楚,不好意思

有两个下拉框A和B, A的onchange绑定下拉框B , 后面一个查询按钮,查询完,绑定到界面.

联动是正常的,可是,当查询完以后,下拉B的 选项 就保留不住,(B的下拉选项是在A的onChange事件中用ajax绑定的)请问怎么解决呢?是asp.net程序。谢谢大家出主意
...全文
111 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-01-12
  • 打赏
  • 举报
回复
一般绑定数据后不刷新页面和清空数据,数据值是保留的
使用ajax实现无刷新绑定。贴出代码看看
aellonxie 2010-01-12
  • 打赏
  • 举报
回复
前台无刷新用ajax,这是个案例你看看有帮助没

这是js:
<script language="javascript" type="text/javascript">
function proResult()
{
var reg = document.getElementById("<%=ddl_region.ClientID %>");
AjaxMethod.GetPovinceList(reg.value,get_pro_Result_CallBack);
}
function get_pro_Result_CallBack(response)
{
if (response.value != null)
{
document.all("<%=ddl_pro.ClientID %>").length=0;    
var ds = response.value;
if(ds != null && typeof(ds) == "object" && ds.Tables != null)
{
document.all("<%=ddl_pro.ClientID %>").options.add(new Option("-------省份------","0"));
for(var i=0; i<ds.Tables[0].Rows.length; i++)
{
var name=ds.Tables[0].Rows[i].Province_Name;
var id=ds.Tables[0].Rows[i].Province_ID;
document.all("<%=ddl_pro.ClientID %>").options.add(new Option(name,id));
}
}
}
else
{
document.all("<%=ddl_pro.ClientID %>").length=0;
}
return
}
function cityResult()
{
var pro=document.getElementById("<%=ddl_pro.ClientID %>");
AjaxMethod.GetCityList(pro.value,get_city_Result_CallBack);
}
function get_city_Result_CallBack(response)
{
if (response.value != null)
{
document.all("<%=ddl_city.ClientID %>").length=0;    
var ds = response.value;
if(ds != null && typeof(ds) == "object" && ds.Tables != null)
{
document.all("<%=ddl_city.ClientID %>").options.add(new Option("------城市------","0"));
for(var i=0; i<ds.Tables[0].Rows.length; i++)
{
var name=ds.Tables[0].Rows[i].CITY_NAME;
var id=ds.Tables[0].Rows[i].CITY_ID;
document.all("<%=ddl_city.ClientID %>").options.add(new Option(name,id));
}
}
}
else
{
document.all("<%=ddl_city.ClientID %>").length=0;
}
return
}

</script>


aspx页面:

<tr class="T_TL">
<td class="T_Td_L" >区域/省份/城市:</td>
<td class="T_Td">
<table>
<tr>
<td><asp:DropDownList ID="ddl_region" runat="server" onchange="proResult()"></asp:DropDownList></td>
<td><asp:DropDownList ID="ddl_pro" runat="server" onchange="cityResult()"></asp:DropDownList></td>
<td><asp:DropDownList ID="ddl_city" runat="server"></asp:DropDownList></td>
</tr>
</table>
</td>
</tr>


ajax方法:

[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public static DataSet GetPovinceList(int regionid)
{
string sql = "select Province_ID,Province_Name from SYS_PROVINCE where REGION_ID="+regionid.ToString();
if (regionid == 0)
{
sql = "select Province_ID,Province_Name from SYS_PROVINCE ";
}
DataSet ds = whb147.SQLServerDAL.DbHelperSQL.Query(sql, "SYS_PROVINCE");
return ds;
}
风骑士之怒 2010-01-12
  • 打赏
  • 举报
回复
同个意思,,
http://topic.csdn.net/u/20100112/10/4e84c252-c409-4d0a-aa32-2fcb6ce7b700.html?seed=567816221&r=62658030#r_62658030

还有,建议用二级无刷新联动,

小_虎 2010-01-12
  • 打赏
  • 举报
回复
ajax 查询成功,返回数据后,用js赋值的。
document.getElementById('controlID').value=Date.value

Date是返回的json格式。
快乐的毛毛虫 2010-01-12
  • 打赏
  • 举报
回复
按照Ajax执行查询的想法去做了,可是数据怎么绑定到页面上啊,遇到服务器控件就报错
灵雨飘零 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fwacky 的回复:]
if (!this.IsPostBack)
{
  //帮顶数据写在这
}
[/Quote]

if (!this.IsPostBack)
{
//帮顶数据写在这
}
阿非 2010-01-12
  • 打赏
  • 举报
回复
后面一个查询按钮,查询完,绑定到界面.


你这个过程 ,页面刷新了么
fwacky 2010-01-12
  • 打赏
  • 举报
回复

if (!this.IsPostBack)
{
//帮顶数据写在这
}
qqzeng-ip 2010-01-12
  • 打赏
  • 举报
回复
if (!this.IsPostBack)
{
if (Request["AId"] != "" && Request["BId"] != "")
{
this.classABinder();
this.ddl1.SelectedValue = Request["AId"];
this.classBBinder(ddl1.SelectedValue);
this.ddl2.SelectedValue = Request["BId"];
this.classCBinder(ddl2.SelectedValue);
}


protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
{
this.classBBinder(this.ddl1.SelectedValue);
this.classCBinder(this.ddl2.SelectedValue);
Response.Redirect("addpro.aspx?AId=" + this.ddl1.SelectedValue + "&BId=" + this.ddl2.SelectedValue);

}
lemong 2010-01-12
  • 打赏
  • 举报
回复
执行查询不要刷新联动部分就行了
小_虎 2010-01-12
  • 打赏
  • 举报
回复
postbock了。

Ajax执行查询
快乐的毛毛虫 2010-01-12
  • 打赏
  • 举报
回复
哦,我试试。我用的是脚本调用 服务器按钮的事件,是刷新了。
wwweasy 2010-01-12
  • 打赏
  • 举报
回复
绑定的数据需要刷新页面,所以B就没有保留了。要解决这个问题,需要在绑定数据的时候,将B重新取一下值
jenny0810 2010-01-12
  • 打赏
  • 举报
回复
查询后 再赋一次值
tzs2304 2010-01-12
  • 打赏
  • 举报
回复
执行查询时刷新页面了吧 可以把查询也做成ajax显示就可以了

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧