省市县级联问题 ??

seven4634 2011-08-04 05:20:23

我下载了那个ajax控件 用的CascadingDropDown 这个实现级联
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div style="text-align: right; height: 24px; width: 1233px;">
<a href="../Master/Index.aspx">用户管理</a>
<cc1:CascadingDropDown ID="cas1" runat="server" TargetControlID="ddlPro" PromptText="请选择"
ServicePath="../WebService.asmx" Category="pro" ServiceMethod="GetProvince">
</cc1:CascadingDropDown>
<cc1:CascadingDropDown ID="cas2" runat="server" TargetControlID="ddlCity" ServicePath="../WebService.asmx"
Category="city" ServiceMethod="GetCityByProvince" ParentControlID="ddlPro">
</cc1:CascadingDropDown>
<cc1:CascadingDropDown ID="cas3" runat="server" TargetControlID="ddlCounty" ServicePath="../WebService.asmx"
Category="count" ServiceMethod="GetAreaByCity" ParentControlID="ddlCity">
</cc1:CascadingDropDown>
省<asp:DropDownList ID="ddlPro" runat="server" >
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
市<asp:DropDownList ID="ddlCity" runat="server" >
</asp:DropDownList>
县<asp:DropDownList ID="ddlCounty" runat="server" >
</asp:DropDownList>



这是webservice.ASMX的代码


public CascadingDropDownNameValue[] GetProvince(string knownCategoryValues,string category) {
StringDictionary val = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
List<CascadingDropDownNameValue> list = new List<CascadingDropDownNameValue>();



DataSet ds = gl.GetList("");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
list.Add(new CascadingDropDownNameValue (ds.Tables[0].Rows[i]["PRONAME"].ToString(), ds.Tables[0].Rows[i]["PROCODE"].ToString()));
}
return list.ToArray();

}

public CascadingDropDownNameValue[] GetCityByProvince(string knownCategoryValues,string category) {
StringDictionary val = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
List<CascadingDropDownNameValue> list = new List<CascadingDropDownNameValue>();



string ProvinceId = val["pro"];

DataSet ds2 = gl.GetCity(ProvinceId);
if (ds2 != null && ds2.Tables[0].Rows.Count>0)

for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
{
list.Add(new CascadingDropDownNameValue(ds2.Tables[0].Rows[i]["CITYNAME"].ToString(), ds2.Tables[0].Rows[i]["CITYCODE"].ToString()));
}
return list.ToArray();


}

public CascadingDropDownNameValue[] GetAreaByCity(string knownCategoryValues,string category) {
StringDictionary val = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
List<CascadingDropDownNameValue> list = new List<CascadingDropDownNameValue>();

string city = val["city"];
DataSet ds3 = gl.GetArea(city);
if (ds3 != null && ds3.Tables[0].Rows.Count > 0)
{

for (int i = 0; i < ds3.Tables[0].Rows.Count; i++)
{
list.Add(new CascadingDropDownNameValue(ds3.Tables[0].Rows[i]["CITYNAME"].ToString(), ds3.Tables[0].Rows[i]["CITYCODE"].ToString()));
}


}
return list.ToArray();
}




我实在是不知道哪错了 各位帮看看吧
...全文
166 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
seven4634 2011-08-05
  • 打赏
  • 举报
回复
好了 我知道了 因为我在方法上忘加[WebMethod] 这个了 呵呵 谢谢各位啊
子夜__ 2011-08-04
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//绑定省
SqlConnection con = new SqlConnection("server=.;database=dropDownTest;integrated security=true;");
con.Open();
SqlCommand cmd = new SqlCommand("select * from provience", con);
SqlDataReader sdr = cmd.ExecuteReader();
this.ddlprovince.DataSource = sdr;
this.ddlprovince.DataTextField = "proName";
this.ddlprovince.DataValueField = "proID";
this.ddlprovince.DataBind();
sdr.Close();
//绑定市
SqlCommand cmdcity = new SqlCommand("select * from city where proID=" + this.ddlprovince.SelectedValue, con);
SqlDataReader sdr1 = cmdcity.ExecuteReader();
this.ddlcity.DataSource = sdr1;
this.ddlcity.DataTextField = "cityName";
this.ddlcity.DataValueField = "cityID";
this.ddlcity.DataBind();
sdr1.Close();
con.Close();
}




}
protected void ddlprovince_SelectedIndexChanged(object sender, EventArgs e)
{
string proID = this.ddlprovince.SelectedValue;
SqlConnection con = new SqlConnection("server=.;database=dropDownTest;integrated security=true;");
con.Open();
SqlCommand cmd = new SqlCommand("select*from city where proID=" + proID, con);
SqlDataReader sdr= cmd.ExecuteReader();
this.ddlcity.DataSource = sdr;
this.ddlcity.DataTextField = "cityName";
this.ddlcity.DataValueField = "cityID";
this.ddlcity.DataBind();
sdr.Close();
con.Close();

}
}

ddlprovince 为省 dropdownlist ID

ddlcity 为市 dropdownlist ID

proName proID为表provience中的字段 也就是省的

cityName cityID为市city表中的字段 是市的


ddlprovince_SelectedIndexChanged为省的dropdownlist 选中事件 触发绑定

数据库 Demo 完整
seven4634 2011-08-04
  • 打赏
  • 举报
回复
恩 调试
parverxiao 2011-08-04
  • 打赏
  • 举报
回复
调试过了吗?你调试一下看看到哪里出错了
seven4634 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 victory1124 的回复:]
自己打断点调试下,一步一步来
[/Quote]
请问 .asmx 中的文件怎么调试啊?我设了断点 当下拉的时候不走啊?
victory1124 2011-08-04
  • 打赏
  • 举报
回复
自己打断点调试下,一步一步来
seven4634 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dandeline 的回复:]
具体是什么问题啊
[/Quote]

问题就是我那个图里面的 能读出省的来 市的不出来 在下拉框中显示方法错误 可是我写的方法我感觉对啊
parverxiao 2011-08-04
  • 打赏
  • 举报
回复
具体是什么问题啊
seven4634 2011-08-04
  • 打赏
  • 举报
回复
哪位好心人·来看看啊·········

62,075

社区成员

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

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

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

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