ASP.NET dropdownlist的二级联动问题(两数据都来自数据库)
答案:4 悬赏:0
解决时间 2021-02-08 05:15
- 提问者网友:朱砂泪
- 2021-02-07 15:30
ASP.NET dropdownlist的二级联动问题(两数据都来自数据库)
最佳答案
- 二级知识专家网友:有钳、任性
- 2021-02-07 16:18
呵呵 刚刚做了这个~ 我做的是国家和省份 我就不改代码了哈
给你说的详细一点哈(*^__^*)...
建议你不要直接从方法里写查询数据库的代码!
你一定会获取省和城市的数据吧
比如说 获取到的国家的数据集是cList
获取到省份的是pList
前台:
<asp:DropDownList ID="countryDdl" runat="server" AutoPostBack="True" OnSelectedIndexChanged="countryDdl_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="stateDdl" runat="server">
</asp:DropDownList>
后台:
在页面加载的时候帮他们绑定值
(我看你的代码少绑定了一个哦)
countryDdl.DataSource = cList;
countryDdl.DataTextField = "name";// 页面显示的数据--对应你的省份的名
countryDdl.DataValueField = "id";// 值--对应你的省号
countryDdl.DataBind();
一定要页面加载的时候 两个都绑定哦
然后是联动的效果 countryDdl_SelectedIndexChanged
后台代码:
protected void countryDdl_SelectedIndexChanged(object sender, EventArgs e)
{
// 现获取缩选择的国家的值
string countryStr = countryDdl.SelectedValue;
// 然后重新绑定一下你城市的值而已...
}
明白了么
说的够仔细吧
累死了~
给你说的详细一点哈(*^__^*)...
建议你不要直接从方法里写查询数据库的代码!
你一定会获取省和城市的数据吧
比如说 获取到的国家的数据集是cList
获取到省份的是pList
前台:
<asp:DropDownList ID="countryDdl" runat="server" AutoPostBack="True" OnSelectedIndexChanged="countryDdl_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="stateDdl" runat="server">
</asp:DropDownList>
后台:
在页面加载的时候帮他们绑定值
(我看你的代码少绑定了一个哦)
countryDdl.DataSource = cList;
countryDdl.DataTextField = "name";// 页面显示的数据--对应你的省份的名
countryDdl.DataValueField = "id";// 值--对应你的省号
countryDdl.DataBind();
一定要页面加载的时候 两个都绑定哦
然后是联动的效果 countryDdl_SelectedIndexChanged
后台代码:
protected void countryDdl_SelectedIndexChanged(object sender, EventArgs e)
{
// 现获取缩选择的国家的值
string countryStr = countryDdl.SelectedValue;
// 然后重新绑定一下你城市的值而已...
}
明白了么
说的够仔细吧
累死了~
全部回答
- 1楼网友:说多了都是废话
- 2021-02-07 17:29
呵呵 刚刚做了这个~ 我做的是国家和省份 我就不改代码了哈 给你说的详细一点哈(*^__^*)... 建议你不要直接从方法里写查询数据库的代码! 你一定会获取省和城市的数据吧 比如说 获取到的国家的数据集是clist 获取到省份的是plist 前台: <asp:dropdownlist id="countryddl" runat="server" autopostback="true" onselectedindexchanged="countryddl_selectedindexchanged"> </asp:dropdownlist> <asp:dropdownlist id="stateddl" runat="server"> </asp:dropdownlist> 后台: 在页面加载的时候帮他们绑定值 (我看你的代码少绑定了一个哦) countryddl.datasource = clist; countryddl.datatextfield = "name";// 页面显示的数据--对应你的省份的名 countryddl.datavaluefield = "id";// 值--对应你的省号 countryddl.databind(); 一定要页面加载的时候 两个都绑定哦 然后是联动的效果 countryddl_selectedindexchanged 后台代码: protected void countryddl_selectedindexchanged(object sender, eventargs e) { // 现获取缩选择的国家的值 string countrystr = countryddl.selectedvalue; // 然后重新绑定一下你城市的值而已... } 明白了么 说的够仔细吧 累死了~
- 2楼网友:丢不掉的轻狂
- 2021-02-07 17:08
dropdownlist.SelectedValue 改成 dropdownlist.Items.FindByValue(dropdownlist.SelectedValue ).ToString();
- 3楼网友:一池湖水
- 2021-02-07 16:34
你的ddl2就不用AutoPostback了,也就是选择改变后不要激发dropdownlist2_SelectedIndexChanged这个事件了.
而且还要看你ddl1是怎么绑定.
注意你是通过PNo查询的,但SelectedValue指的是Value不是Text.所以还要在ddl1设置Value.以下面代码示例设置ddl1
this.dropdownlist2.DataTextField = "CNa";
this.dropdownlist2.DataValueField = "CNo";//
this.dropdownlist2.DataBind();
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯