小弟现在做了一个搜索控件用到了菜单的3级级联,也就是选省的时候后2个下拉菜单分别出相应的市跟区,现在的问题是当我点了搜索之后,提交了整个表单,市跟区的下拉菜单里头没有值了,也就是说必须再在省的下拉菜单里面选一下重新联动才能得到值,这样的问题就是当客户重新在搜索的时候,会出现跟他的预期有出入,我现在就是想问各位如何在提交之后还能继续保存住刚才联动之后你所选到的值呢?
解决方案 »
- 双击GridView一行> 编辑状态 > 双击 更新, 为什么后台取值还是原来的!
- 问委托与事件的差别
- 向数据库中插入数据时怎么才能插入超链接,然后在绑定到DataList中
- 初学请教form表单问题
- <%# 为什么我已经定义了MPlay做系统总是说还没有定义 好烦好烦
- 在线求教﹕如何在WinXP SP2系统中实现新开窗体的功能﹖
- 调用类方法,编译后的问题
- 怎么判断是字符串是英文字母和数字 ????求救 谢谢
- 用asp.net在Web界面下如何生成像资源管理器一样的树形目录???
- 一个可能很低级的问题,javascript如何在服务器端显示。
- 求助:请问多个结果集怎样合并?????
- 求一个人才网的项目文档~
在page_load时,是if(!IsPostBack){..}吗?
====================================================================================
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="SearchCon.ascx.cs" Inherits="RoadCenter.SearchCon" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<LINK href="image\v1.2.css" type="text/css" rel="stylesheet">
<script language="javascript">
function drop1()
{
while(document.all["SearchCon1_lstSort"].options.length>1)
document.all["SearchCon1_lstSort"].options.remove(1);
while(document.all["SearchCon1_lstGoodSort"].options.length>1)
document.all["SearchCon1_lstGoodSort"].options.remove(1);
if(document.all["SearchCon1_lstSearch"].selectedIndex>0)
{
var selected1 = new Array();
selected1 = allData[document.all["SearchCon1_lstSearch"].selectedIndex-1];
var i;
for(i=0;i<selected1.length;i++)
{
var oOption = document.createElement("OPTION");
document.all["SearchCon1_lstSort"].options.add(oOption); oOption.innerText = selected1[i][0][1];
oOption.value = selected1[i][0][0];
}
} var sg = document.getElementById("SearchCon1_lstSearch");
var sindex = sg.selectedIndex;
var sValue = sg.options[sindex].value;
var sText = sg.options[sindex].text;
var parent = document.getElementById("SearchCon1_lstSort");
var pindex = parent.selectedIndex;
var pValue = parent.options[pindex].value;
var pText = parent.options[pindex].text;
var child = document.getElementById("SearchCon1_lstGoodSort");
var cindex = child.selectedIndex;
var cValue = child.options[cindex].value;
var cText = child.options[cindex].text;
document.Form1.SearchCon1_hid3.value=cText;
document.Form1.SearchCon1_hid2.value=pText;
document.Form1.SearchCon1_hid1.value=sText;
}
function drop2()
{
while(document.all["SearchCon1_lstGoodSort"].options.length>1)
document.all["SearchCon1_lstGoodSort"].options.remove(1); if(document.all["SearchCon1_lstSort"].selectedIndex>0)
{
var selected2 = new Array();
selected2 = allData[document.all["SearchCon1_lstSearch"].selectedIndex-1][document.all["SearchCon1_lstSort"].selectedIndex-1][1];
var i;
for(i=0;i<selected2.length;i++)
{
var oOption = document.createElement("OPTION");
document.all["SearchCon1_lstGoodSort"].options.add(oOption); oOption.innerText = selected2[i][1];
oOption.value = selected2[i][0];
}
}
var parent = document.getElementById("SearchCon1_lstSort");
var pindex = parent.selectedIndex;
var pValue = parent.options[pindex].value;
var pText = parent.options[pindex].text;
var child = document.getElementById("SearchCon1_lstGoodSort");
var cindex = child.selectedIndex;
var cValue = child.options[cindex].value;
var cText = child.options[cindex].text;
document.Form1.SearchCon1_hid3.value=cText;
document.Form1.SearchCon1_hid2.value=pText;
}function drop3()
{
var child = document.getElementById("SearchCon1_lstGoodSort");
var cindex = child.selectedIndex;
var cValue = child.options[cindex].value;
var cText = child.options[cindex].text;
document.Form1.SearchCon1_hid3.value=cText;
}
</script>
<table id="Table1" width="500" align="center" bgColor="#993300">
<tr vAlign="middle" align="left">
<td colSpan="3" height="17"><asp:dropdownlist id="lstSearch" runat="server" DataValueField="categoryID" DataTextField="Description">
<asp:ListItem Value="请选择">请选择</asp:ListItem>
</asp:dropdownlist> <asp:textbox id="txtSearch" runat="server"></asp:textbox> <asp:dropdownlist id="lstSort" runat="server" BackColor="White">
<asp:ListItem Value=" 选择全部 "> 选择全部 </asp:ListItem>
</asp:dropdownlist> <asp:dropdownlist id="lstGoodSort" runat="server">
<asp:ListItem>选择全部</asp:ListItem>
</asp:dropdownlist> <asp:linkbutton id="lnkSearch" runat="server">搜索</asp:linkbutton><INPUT id="hid1" type="hidden" size="1" name="hid1" runat="server">
<INPUT id="hid2" type="hidden" size="1" name="hid2" runat="server"> <INPUT id="hid3" type="hidden" size="1" name="hid3" runat="server">
</td>
</tr>
</table>
</SCRIPT>
=========================================================================
private void Page_Load(object sender, System.EventArgs e)
{
this.txtSearch.Attributes.Add("onkeydown","if(event.keyCode==13){"+Page.GetPostBackEventReference(this.lnkSearch)+"}");
if(!IsPostBack)
{
this.LoadData();
this.lstSearch.DataSource = dtSG;
this.lstSearch.DataBind();
this.lstSearch.Items.Insert(0,new ListItem("请选择",""));
this.lstSearch.Attributes.Add("onchange","drop1();");
this.lstSort.Attributes.Add("onchange","drop2();");
this.lstGoodSort.Attributes.Add("onchange","drop3();"); }
Response.Write(this.CreateJSArray());
}
public void LoadData()//数据访问的一些方法我就不贴了
{
CategoriesDS dsChild = new CategoriesDS();
ds = da.GetSort(0);
dsShop = daShop.GetAll();
dtSG = new DataTable();
dtSG.Columns.Add("categoryID");
dtSG.Columns.Add("Description"); dtSG.Rows.Add(new object[]{"A","搜索商铺"});
dtSG.Rows.Add(new object[]{"B","搜索商品"});
dtParent = new DataTable();
dtParent.Columns.Add("categoryID");
dtParent.Columns.Add("Description");
dtParent.Columns.Add("parentID"); dtChild = new DataTable();
dtChild.Columns.Add("categoryID");
dtChild.Columns.Add("Description");
dtChild.Columns.Add("parentID");
for(int i = 0;i< dsShop.shopSorts.Count; i++)
{
dtParent.Rows.Add(new object[]{"-1",dsShop.shopSorts[i].shopSort,"A"});
}
for(int i = 0;i< ds.categories.Count; i ++)
{
dtParent.Rows.Add(new object[]{ds.categories[i].CategoryID,ds.categories[i].Description,"B"});
dsChild = da.GetSort(ds.categories[i].CategoryID);
for(int j = 0;j < dsChild.categories.Count;j ++)
{
dtChild.Rows.Add(new object[]{dsChild.categories[j].CategoryID,dsChild.categories[j].Description,dsChild.categories[j].ParentID});
}
}
}
/// <summary>
/// 构造JS脚本代码
/// </summary>
/// <returns>字符串</returns>
public string CreateJSArray()
{
if(ViewState["JSArray"]!=null)
{
return ViewState["JSArray"].ToString();
}
else
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script language='javascript'>");
sb.Append("var allData = new Array("+dtSG.Rows.Count+");");
for(int i=0;i<dtSG.Rows.Count;i++)
{
string parent = dtSG.Rows[i][0].ToString();
DataRow[] rows2 = dtParent.Select("[parentID]='"+parent+"'");
sb.Append("allData["+i.ToString()+"] = new Array("+rows2.Length+");");
for(int j=0;j<rows2.Length;j++)
{
string child = rows2[j][0].ToString();
DataRow[] rows3 = dtChild.Select("[parentID]='"+child+"'");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"] = new Array(2);");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][0] = new Array(2);");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][0][0] = '"+rows2[j][0].ToString()+"';");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][0][1] = '"+rows2[j][1].ToString()+"';");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][1] = new Array("+rows3.Length+");");
for(int k=0;k<rows3.Length;k++)
{
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][1]["+k.ToString()+"] = new Array(2);");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][1]["+k.ToString()+"][0] = '"+rows3[k][2].ToString()+"';");
sb.Append("allData["+i.ToString()+"]["+j.ToString()+"][1]["+k.ToString()+"][1] = '"+rows3[k][1].ToString()+"';");
}
}
} sb.Append("</script>");
ViewState["JSArray"] = sb.ToString();
return sb.ToString();
}===============================================================================
帮看一下吧 3Q了 仍然在线等