关于使用DropListDown实现二级联动的问题
2011-11-06 14:58
363 查看
当要实现国家和省份,品牌和型号等二级联动时,使用两个DropListDown可以方便实现。例如实现生产行业中一级类别和二级联动
数据库表为
aspx前台代码:
最终效果
至此,二级联动就实现了,但是不够完美,例如在该记录要编辑时,用该方法实现的二级联动,第二个droplistdown初始化无效(industry_second_class.Text = "^从数据读的值^";),总是默认为第一个值
为了解决此问题,可以采用后台绑定数据源。
ASPX前台
ASPX后台
数据库表为
aspx前台代码:
<asp:DropDownList ID="industry_fisrt_class" runat="server" DataSourceID="DS_Instrual_type" DataTextField="option_text" DataValueField="option_value" AutoPostBack="True"> </asp:DropDownList> <asp:SqlDataSource ID="DS_Instrual_type" runat="server" ConnectionString="<%$ ConnectionStrings:WEB_DBConnectionString %>" SelectCommand="SELECT [option_text], [option_value] FROM [tb_SYS_SelectOption] WHERE ([group_name] = @group_name)"> <SelectParameters> <asp:Parameter DefaultValue="行业类别" Name="group_name" Type="String" /> </SelectParameters> </asp:SqlDataSource> <asp:DropDownList ID="industry_second_class" runat="server" DataSourceID="DS_Instrual_type2" DataTextField="option_text" DataValueField="option_value"> </asp:DropDownList> <asp:SqlDataSource ID="DS_Instrual_type2" runat="server" ConnectionString="<%$ ConnectionStrings:WEB_DBConnectionString %>" SelectCommand="SELECT [option_text], [option_value] FROM [tb_SYS_SelectOption] WHERE ([group_name] = @group_name)"> <SelectParameters> <asp:ControlParameter ControlID="industry_fisrt_class" Name="group_name" PropertyName="SelectedValue" Type="String" /> </SelectParameters> </asp:SqlDataSource>
最终效果
至此,二级联动就实现了,但是不够完美,例如在该记录要编辑时,用该方法实现的二级联动,第二个droplistdown初始化无效(industry_second_class.Text = "^从数据读的值^";),总是默认为第一个值
为了解决此问题,可以采用后台绑定数据源。
ASPX前台
<asp:DropDownList ID="industry_fisrt_class" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> </asp:DropDownList> <asp:DropDownList ID="industry_second_class" runat="server"> </asp:DropDownList>
ASPX后台
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BLL.tb_SYS_Dept bBLL = new BLL.tb_SYS_Dept(); Model.tb_SYS_Dept mModel = new Model.tb_SYS_Dept(); industry_fisrt_class.Text = mModel.industry_fisrt_class; industry_second_class.Text = mModel.industry_second_class; //执行绑定函数 BindDrop(); }//if(!IsPostBack) END } private void BindDrop() { //将数据捆绑到下拉列表中 //一级类别绑定 string sqlStr = "select * from tb_SYS_SelectOption where group_name = '行业类别'"; DataTable dt = DAL.DBOperator.GetDataSetBySqlString(sqlStr).Tables[0]; industry_fisrt_class.DataTextField = "option_text"; //设置列表显示的字 industry_fisrt_class.DataValueField = "option_value"; //设置列表提交后获得的字段,自己理解为隐藏绑定数据 industry_fisrt_class.DataSource = dt.DefaultView; industry_fisrt_class.DataBind(); //industry_fisrt_class.Items.Insert(0, new ListItem("请选择大类", ""));//第一项中加入内容,重点是绑定后添加 //industry_second_class.Items.Insert(0, new ListItem("请选择小类", ""));//第一项中加入内容,重点是绑定后添加 //二级类别绑定 string type = industry_fisrt_class.SelectedValue;//页面加载后industry_fisrt_class.DataValueField隐藏绑定的数据,后边根据它查询industry_second_class要显现的数据 string sqlStr1 = "select * from tb_SYS_SelectOption where group_name ='" + type + "'"; DataTable dt1 = DAL.DBOperator.GetDataSetBySqlString(sqlStr1).Tables[0]; industry_second_class.DataTextField = "option_text"; //设置industry_fisrt_class事件SelectedIndexChanged改变后industry_second_class列表显示的数据 industry_second_class.DataSource = dt1.DefaultView; industry_second_class.DataBind(); } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { string type = industry_fisrt_class.SelectedValue;//页面加载后industry_fisrt_class.DataValueField隐藏绑定的数据,后边根据它查询industry_second_class要显现的数据 string sqlStr = "select * from tb_SYS_SelectOption where group_name ='" + type + "'"; DataTable dt = DAL.DBOperator.GetDataSetBySqlString(sqlStr).Tables[0]; industry_second_class.DataTextField = "option_text"; //设置industry_fisrt_class事件SelectedIndexChanged改变后industry_second_class列表显示的数据 industry_second_class.DataSource = dt.DefaultView; industry_second_class.DataBind(); ; }
相关文章推荐
- 使用angularjs实现二级联动需要注意的问题如下
- 关于js二级联动的实现
- 关于统计的一个sql问题,使用动态sql语句实现。
- droplist中的value值使用中文遇到的小问题
- 【js】使用xml数据载体实现城市省份二级联动
- Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
- 关于使用工具类org.apache.commons.collections.ListUtils合并List的问题
- 使用javascript实现二级联动菜单
- java在使用实现了List接口时候应该注意的问题
- 解决了一下关于list中使用viewHolder加载错乱的问题
- List的All方法使用问题:我用List1的All方法来确保List1的所有每个数组元素中是否包含Arr1中的任意元素,这个部分很难实现。 因为,没有一个数组中是否包含另一个数组中的任意元素这个功能
- Android中使用Spinner来实现图标文字并存的二级联动
- Android中使用ViewFlipper实现屏幕页面切换(关于坐标轴的问题已补充更改)
- 关于jqGrid使用二级表头拖拽导致表头错位问题解决
- 关于下拉列表二级联动问题
- DataGridView使用非泛型或者未实现IBindingList接口泛型集合的列排序问题
- 关于在使用iframe之后子页面中如何在父级弹窗的问题的具体实现
- 利用InfoPath实现SharePoint Server 2013列表的级联选择(Cascading Drop Down List)
- 关于jQuery使用serializeArray()序列化表单数据,使用FormData()实现AJAX请求的问题
- js使用xml数据载体实现城市省份二级联动效果