Asp.net绑定带层次下拉框(select控件)
1、效果图

2、数据库中表数据结构

3、前台页面
<select id="pid" runat="server" style="width:160px;" >
<option value="0" data="|0|">不选父级类</option>
</select>
4、后台代码
using System;
using System.Data;
using System.Web.UI.WebControls;
//带层次的绑定下拉框(select控件)
BindDropDownList(, "┗━");
/// <summary>
/// 带层次的绑定下拉框
/// </summary>
/// <param name="pItemId">父类编号</param>
/// <param name="levelStr">层次样式</param>
protected void BindDropDownList(int pItemId, string levelStr)
{
//获取新闻类别列表
DataTable dt = Express.BLL.NewsCategory.GetDataSet().Tables[];
//判断是否是父类,更改其层级值
if (pItemId != )
{
levelStr += string.IsNullOrEmpty(levelStr) ? "┗━" : "┻━";
}
//遍历控件的列表控件中的数据项
foreach (DataRow dr in dt.Select("ParentId=" + pItemId))
{
//初始化列表控件中的数据项
ListItem li = new ListItem();
//设置数据项显示的文本
li.Text = levelStr + dr["ItemName"].ToString();
//设置数据项关联的值
li.Value = dr["Id"].ToString();
//将数据项追加到控件中
this.pid.Items.Add(li);
//遍历列表控件中的子类数据项
BindDropDownList(Convert.ToInt32(li.Value), levelStr);
}
}
5、数据库部分
/// <summary>
/// 获取所有名称不为空的类别
/// </summary>
/// <returns></returns>
public DataSet GetDataSet()
{
string sql = "select * from NewsCategory where ItemName<>'' order by sortvalue ";
return SqlHelper.ExecuteDataSet(ConnString.connReadonly, CommandType.Text, sql, null);
}
备注:查看网页源代码
<select name="pid" id="pid">
<option value="0">不选父级类</option>
<option value="31">┗━新闻中心</option>
<option value="51">┗━┻━企业快讯</option>
<option value="52">┗━┻━企业公告</option>
<option value="53">┗━┻━行业动态</option>
<option value="54">┗━关于盟友捌捌</option>
<option value="55">┗━┻━企业概况</option>
<option value="56">┗━┻━企业文化</option>
<option value="57">┗━┻━企业发展</option>
<option value="58">┗━┻━联系我们</option>
</select>
涉及的知识点:
(1)将数据库中的数据绑定到下拉框
<select id="pid" runat="server">
<option value="0" data="|0|">不选父级类</option>
</select>
方法一:
DataSet ds = Express.BLL.AdminLeft.GetDataSet();
foreach (DataRow dr in ds.Tables[].Rows)
{
pid.Items.Add(new ListItem(dr["ItemName"].ToString(), dr["Id"].ToString()));
}
备注:
ListItem引用空间:System.Web.UI.WebControls;
ListItem(string text,string value);//text指在 ListItem 中显示的文本;value指ListItem 的值。
方法二:
pid.DataSource = dt;//设置控件的数据源
pid.DataTextField = "ItemName"; //设置数据项显示的文本
pid.DataValueField = "Id";//设置数据项关联的值
pid.DataBind();//将数据绑定到控件
(2)【DataTable.Select方法】返回值:DataRow对象数组
dt.Select(筛选条件);

dt.Select();

dt.Select(筛选条件,排序);

Asp.net绑定带层次下拉框(select控件)的更多相关文章
- Jquery+json绑定带层次下拉框(select控件)
一.实现的效果图 备注: 1.主要实现添加类别绑定到Ztree树之后,select下拉框在不刷新页面的情况下,通过Jquery重新绑定问题,增加用户体验度: 2.这个只是实现两层的绑定,通过sql语句 ...
- GridControl控件绑定RepositoryItemImageComboBox 作为下拉框使用
如果,时间长时了,已前做过的东西,都记不得了,所以记录一下. 废话不多说. 1.拖出gridview控件,然后将字段绑定上去 2.将要做下拉框的控件加入RepositoryItemImageCombo ...
- devpress GridControl控件绑定RepositoryItemImageComboBox 作为下拉框使用 zt
1.拖出gridview控件,然后将字段绑定上去 2.将要做下拉框的控件加入RepositoryItemImageComboBox控件 3.绑定数据 ; i < ; i++) { //如果取值时 ...
- struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input
原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1 function dosearch() {2 if ($(&q ...
- elementUI下拉框select组件change事件用法
<el-select-custom clearable collapse-tags v-model="searchForm.cardTypeList" @change=&qu ...
- jQuery对下拉框Select操作总结
jQuery对下拉框Select操作总结 转自网络,留做备用 jQuery获取Select元素,并选择的Text和Value: 1. $("#select_id").change( ...
- JQuery操作下拉框 select
要实现这种效果: html代码 1<script src="js/jquery-1.7.2.min.js"></script> 2 <table> ...
- 下拉框select中option居中样式
下拉框select中option居中样式 text-align:center;text-align-last:center;
- 【jQuery获取下拉框select、单选框radio、input普通框的值和checkbox选中的个数】
radio单选框:name属性相同 <input type="radio" id="sp_type" name="p_type" va ...
随机推荐
- Android+Jquery Mobile学习系列(4)-页面跳转及参数传递
关于页面转场,这个必须得专门列出来说明一下,因为Jquery Mobile与普通的Web发开有一些区别,这个对于新手如果不了解的话,就会钻到死胡同.撸主前段时间就是很急躁地上手开发程序,结果在页面转场 ...
- Java和C++中多态的实现方式
多态是面向对象的最主要的特性之一,是一种方法的动态绑定,实现运行时的类型决定对象的行为.多态的表现形式是父类指针或引用指向子类对象,在这个指针上调用的方法使用子类的实现版本.多态是IOC.模板模式实现 ...
- [AngularJS] Accessing Services from Console
Using the Chrome console, you can access your AngularJS injectable services. This is down and dirty ...
- 了解PHP中Stream(流)的概念与用法(转)
Stream是PHP开发里最容易被忽视的函数系列(SPL系列,Stream系列,pack函数,封装协议)之一,但其是个很有用也很重要的函数.Stream可以翻译为“流”,在Java里,流是一个很重要的 ...
- Lucene的DocFieldProcessor类
DocFieldProcessor类的任务1 按顺序存储所有的field和对应的fieldinfo2 为当前这篇doc的field按照fieldname来建立hash索引3 调用InvertedDoc ...
- [转]使用 PIVOT 和 UNPIVOT
可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表.PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执 ...
- 数据连接命令join
join主要用来将两个相关联的文件连接起来.两个文件相关联的意思是指这两个文件中有一些字段是关联的,例如两个文件的第1个字段都是学号,且每个学生的学号是唯一的.像这种具有唯一性关联的文件,就可以使用j ...
- php.ini的配置
一.user_agent ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)') user_agent,再 ...
- debian7 编译qtopia错误解决案例
问题: kernel/qjpegio.cpp:60:21: error: jpeglib.h: No such file or directory 解决 sudo apt-get install li ...
- c++ 设计模式9 (Abstract Factory 抽象工厂模式)
5.2 抽象工厂模式 动机:在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作:同时,由于需求的变化,往往存在更多系列对象的创建工作. 代码示例: 实现利用数据库的业务逻辑,支持多数据库(Sq ...