html页面的两个下拉类别框是联动的,第一个下拉框是后台绑定的,第二个下拉框是用ajax来无刷新动态绑定的,在作查询页面时,选择第一个下拉框以后,第二个下拉框也发生变化,点击搜索以后,第二个下拉类别框没有数据了, html
<asp:DropDownList ID="dropTownship" runat="server"></asp:DropDownList> ajax
<asp:DropDownList ID="dropVillage" runat="server" Width="230px">
<asp:ListItem Value="">---请选择---</asp:ListItem>
</asp:DropDownList> code
查询代码以下 orm
protected void btnSearch_Click(object sender, EventArgs e)
{
string strdropTownship = dropTownship.SelectedValue.Trim();
string strName = txtName.Text.Trim();
string strdropVillage = dropVillage.SelectedValue.Trim();
string strWhere = "township=" + Common.UrlEncode(strdropTownship) +
"&name=" + Common.UrlEncode(strName) +
"&village=" + Common.UrlEncode(strdropVillage) ;
Response.Redirect("VillageInforEnrollList.aspx?" + strWhere);
} server
上面的代码中dropVillage.SelectedValue.Trim();读取到永远为空,这是为何呢,由于它的数据不是后台绑定,而是前台经过ajax来实现的,这时要经过Request.Form["dropVillage"].ToString();方式来获取dropVillage下拉列表框的值 htm
Response.Redirect("VillageInforEnrollList.aspx?" + strWhere);这句会从新加载VillageInforEnrollList,执行PageLoad事件 事件
这时参数里含township和village这个两个参数而后经过这两个参数来后台绑定dropVillage,这样查询时dropVillage能够保留原先搜索的值而不是置空。代码以下 ip
if (Request.QueryString["township"] != null && Request.QueryString["township"].ToString().Length > 0)
{
DataTable dtVillage = new SysAreaMg().GetList(" flag='5' and PCode='" + Common.GetEncodeQueryString("township") + "' ").Tables[0];
Common.DataBind("AreaName", "AreaCode", dtVillage, dropVillage);//绑定dropVillage
if (Request.QueryString["village"] != null && Request.QueryString["village"].ToString().Length > 0)
{ string
//绑定dropVillage下拉框默认值
dropVillage.Items.FindByValue(Common.GetEncodeQueryString("village")).Selected = true;
}
else
{
}
} 后台
这里来经过先后台来肯定dropVillage下拉框的值