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控件)的更多相关文章

  1. Jquery+json绑定带层次下拉框(select控件)

    一.实现的效果图 备注: 1.主要实现添加类别绑定到Ztree树之后,select下拉框在不刷新页面的情况下,通过Jquery重新绑定问题,增加用户体验度: 2.这个只是实现两层的绑定,通过sql语句 ...

  2. GridControl控件绑定RepositoryItemImageComboBox 作为下拉框使用

    如果,时间长时了,已前做过的东西,都记不得了,所以记录一下. 废话不多说. 1.拖出gridview控件,然后将字段绑定上去 2.将要做下拉框的控件加入RepositoryItemImageCombo ...

  3. devpress GridControl控件绑定RepositoryItemImageComboBox 作为下拉框使用 zt

    1.拖出gridview控件,然后将字段绑定上去 2.将要做下拉框的控件加入RepositoryItemImageComboBox控件 3.绑定数据 ; i < ; i++) { //如果取值时 ...

  4. struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

    原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($(&q ...

  5. elementUI下拉框select组件change事件用法

    <el-select-custom clearable collapse-tags v-model="searchForm.cardTypeList" @change=&qu ...

  6. jQuery对下拉框Select操作总结

    jQuery对下拉框Select操作总结 转自网络,留做备用 jQuery获取Select元素,并选择的Text和Value: 1. $("#select_id").change( ...

  7. JQuery操作下拉框 select

    要实现这种效果: html代码 1<script src="js/jquery-1.7.2.min.js"></script> 2 <table> ...

  8. 下拉框select中option居中样式

    下拉框select中option居中样式 text-align:center;text-align-last:center;

  9. 【jQuery获取下拉框select、单选框radio、input普通框的值和checkbox选中的个数】

    radio单选框:name属性相同 <input type="radio" id="sp_type" name="p_type" va ...

随机推荐

  1. android 系统定制的小技巧(网络收集)

    1开机图片: android-logo-mask.png android-logo-shine.png 这两个图片一个在上一个在下 ./out/target/common/obj/JAVA_LIBRA ...

  2. Javascript加载执行问题探索

    转自:http://www.cnblogs.com/huangxincheng/archive/2011/12/04/2275988.html 前言 最近研究MongoDB数据库,无意间发现的好博客, ...

  3. linux文档编辑

    编辑某个文档: 可以直接编辑的如你有文档aa,可以用vi aa [注意:必须在AA所在的目录下]: 如果没有文档而且你又想编辑就可以直接编辑vi aa[名字你可以随便命名]; 也可以先建立一个文档to ...

  4. 提升GDI画图的效率

    假设我们要画一个坐标图,里面可能还需要画网络线.XY各个单位的值.曲线或直线等,可能的函数代码如下: void OnPaint () { CPaintDC dc (this); DrawXY (&am ...

  5. js(jQuery)获取时间的方法及常用时间类搜集

    获取时间的方法及常用时间类都是大家经常使用的,在本文为大家整理了一些,个人感觉还比较全,感兴趣的朋友可以收集下   复制代码代码如下: $(function(){ var mydate = new D ...

  6. jQuery之防止冒泡事件

    冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 方法1: event.stopPropagation(); // 阻止事件冒泡 有时候点击提交按钮会有一些默认事件.但是如果没有通过验证 ...

  7. Spring MVC Controller单例陷阱

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lavasoft.blog.51cto.com/62575/1394669 Spr ...

  8. [HTML] Google IE-x.js 解决IEx与W3C标准的冲突

    如果分别用IE5.IE6.IE7浏览同一个网页,将可能出现不一样的效果.这是它们之间对CSS的解析选择器不一样或错误和个别bug所导致.为了解决这些错误和bug.我们不得不找到一个能平衡于它们之间的解 ...

  9. 【Mood-18】github 使用指南

    windows下使用教程: http://www.cnblogs.com/dongdong230/p/4211221.html repository not found error问题解决(需确定gi ...

  10. Tomcat内存设置详解

    Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在 ...