-
黄小树
2007-12-16
-
您好!我是小树。<br/>我昨晚按照您的方法做了一个二级菜单联动,但是存在一些问题,请帮我看看,好吗?<br/><br/>我的数据库有两个菜单表:<br/>一级菜单表ONE有一级菜单OID和菜单ONAME两个字段====ONE(OID,ONAME)<br/>二级菜单表TWO有二级菜单TID,菜单TNAME和关联一级菜单表的OID三个字段===TWO(TID,TNAME,OID)<br/>----------------以下是我将DropDownList1绑定了一级菜单表ONE的字段,并将OID作为LOAD()的参数,测试没有错误。<br/> DropDownList1.DataSource = get.GetOne();<br/> DropDownList1.DataTextField = "ONAME";<br/> DropDownList1.DataValueField = "OID";<br/> DropDownList1.DataBind();<br/> DropDownList1.Attributes.Add("onchange", "load(this.options[this.selectedIndex].value)");<br/>------------------------以下是我写的存储过程<br/>--根据一级菜单参数获取二级菜单的TID和TNAME<br/>CREATE PROCEDURE GetTwo<br/>(<br/> @OID INT<br/>)<br/>AS<br/>SELECT TID,TNAME FROM TWO WHERE OID=@OID<br/>GO<br/>-------------以下是我仿照别人写的一个连接数据库的函数,DATASET我不是很懂用<br/> //根据一级菜单参数获取二级菜单的TID和TNAME<br/> public DataSet GetTwo(string OID)<br/> {<br/> SqlConnection myconnection = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);<br/> DataSet ds = new DataSet();<br/> myconnection.Open();<br/> System.Data.SqlClient.SqlDataAdapter da = new SqlDataAdapter("GetTwo", myconnection);//GetTwo为存储过程,不知道是不是放这里<br/> da.SelectCommand.CommandType = CommandType.StoredProcedure;<br/> da.SelectCommand.Parameters.Add("@OID", SqlDbType.Int, 4);<br/> da.SelectCommand.Parameters["@OID"].Value = Int32.Parse(OID);<br/> da.Fill(ds, "SecondId");//这一步不知道对不对,不是很理解<br/> myconnection.Close();<br/> return ds;<br/> }<br/>--------------------------以下是调用GetTwo()函数,不知道对不对<br/> DataSet ds = new DataSet();<br/> ds = GetTwo(state);<br/> XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);<br/> writer.Formatting = Formatting.Indented;<br/> writer.Indentation = 4;<br/> writer.IndentChar = ' ';<br/> ds.WriteXml(writer);<br/> writer.Flush();<br/> Response.End();<br/> writer.Close();<br/>------------------最不明白的就是这一步了<br/>我要实现的效果是,DropDownList2的TEXT绑定相应的二级菜单的名字TNAME,VALUE绑定相应的二级菜单的TID。<br/> var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");<br/> var oDoc = new ActiveXObject("MSXML2.DOMDocument");<br/> oHttpReq.open("POST", "Default2.aspx?state=" state, false);<br/> oHttpReq.send("");<br/> result = oHttpReq.responseText;<br/> oDoc.loadXML(result);<br/> items = oDoc.selectNodes("//SecondId");//这步很不明白<br/> for (var item = items.nextNode(); item; item = items.nextNode()){<br/> var name = item.selectSingleNode("//CategoryName").nodeTypedValue;//不明白<br/> var sid = item.selectSingleNode("//SecondId").nodeTypedValue;//不明白<br/> var newOption = document.createElement("OPTION");<br/> newOption.text = name;<br/> newOption.value = sid;<br/> drp2.options.add(newOption);<br/>=============到这一步,我已经实现联动了,就是选中了DropDownList1后,DropDownList2会做相应的改变,但是出来的结果是有很多错误的<br/><br/>我昨晚调到将近3点多,都调不好,请您抽点时间帮我看看,谢谢啊!!!!<br/>此致<br/> 敬礼!<br/> ---小树
-
黄小树
2007-12-16
-
您好!我是小树。<br/>我昨晚按照您的方法做了一个二级菜单联动,但是存在一些问题,请帮我看看,好吗?<br/><br/>我的数据库有两个菜单表:<br/>一级菜单表ONE有一级菜单OID和菜单ONAME两个字段====ONE(OID,ONAME)<br/>二级菜单表TWO有二级菜单TID,菜单TNAME和关联一级菜单表的OID三个字段===TWO(TID,TNAME,OID)<br/>----------------以下是我将DropDownList1绑定了一级菜单表ONE的字段,并将OID作为LOAD()的参数,测试没有错误。<br/> DropDownList1.DataSource = get.GetOne();<br/> DropDownList1.DataTextField = "ONAME";<br/> DropDownList1.DataValueField = "OID";<br/> DropDownList1.DataBind();<br/> DropDownList1.Attributes.Add("onchange", "load(this.options[this.selectedIndex].value)");<br/>------------------------以下是我写的存储过程<br/>--根据一级菜单参数获取二级菜单的TID和TNAME<br/>CREATE PROCEDURE GetTwo<br/>(<br/> @OID INT<br/>)<br/>AS<br/>SELECT TID,TNAME FROM TWO WHERE OID=@OID<br/>GO<br/>-------------以下是我仿照别人写的一个连接数据库的函数,DATASET我不是很懂用<br/> //根据一级菜单参数获取二级菜单的TID和TNAME<br/> public DataSet GetTwo(string OID)<br/> {<br/> SqlConnection myconnection = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);<br/> DataSet ds = new DataSet();<br/> myconnection.Open();<br/> System.Data.SqlClient.SqlDataAdapter da = new SqlDataAdapter("GetTwo", myconnection);//GetTwo为存储过程,不知道是不是放这里<br/> da.SelectCommand.CommandType = CommandType.StoredProcedure;<br/> da.SelectCommand.Parameters.Add("@OID", SqlDbType.Int, 4);<br/> da.SelectCommand.Parameters["@OID"].Value = Int32.Parse(OID);<br/> da.Fill(ds, "SecondId");//这一步不知道对不对,不是很理解<br/> myconnection.Close();<br/> return ds;<br/> }<br/>--------------------------以下是调用GetTwo()函数,不知道对不对<br/> DataSet ds = new DataSet();<br/> ds = GetTwo(state);<br/> XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);<br/> writer.Formatting = Formatting.Indented;<br/> writer.Indentation = 4;<br/> writer.IndentChar = ' ';<br/> ds.WriteXml(writer);<br/> writer.Flush();<br/> Response.End();<br/> writer.Close();<br/>------------------最不明白的就是这一步了<br/>我要实现的效果是,DropDownList2的TEXT绑定相应的二级菜单的名字TNAME,VALUE绑定相应的二级菜单的TID。<br/> var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");<br/> var oDoc = new ActiveXObject("MSXML2.DOMDocument");<br/> oHttpReq.open("POST", "Default2.aspx?state=" state, false);<br/> oHttpReq.send("");<br/> result = oHttpReq.responseText;<br/> oDoc.loadXML(result);<br/> items = oDoc.selectNodes("//SecondId");//这步很不明白<br/> for (var item = items.nextNode(); item; item = items.nextNode()){<br/> var name = item.selectSingleNode("//CategoryName").nodeTypedValue;//不明白<br/> var sid = item.selectSingleNode("//SecondId").nodeTypedValue;//不明白<br/> var newOption = document.createElement("OPTION");<br/> newOption.text = name;<br/> newOption.value = sid;<br/> drp2.options.add(newOption);<br/>=============到这一步,我已经实现联动了,就是选中了DropDownList1后,DropDownList2会做相应的改变,但是出来的结果是有很多错误的<br/><br/>我昨晚调到将近3点多,都调不好,请您抽点时间帮我看看,谢谢啊!!!!<br/>此致<br/> 敬礼!<br/> ---小树
-
迷雾
2007-10-10
-
我使用你的SharePowerDataGrid,感觉帮助很大,但是有些问题想交流下,huang_xp_parent@hotmail.com或QQ23741953 谢谢!