也谈绑定dropdownlist(3)

原创 2004年08月10日 08:49:00

        在前面的文章里,讲了些方法,如果大家仔细体会的其实都还是老的一套方法,根本没有体现面向对象过程编程的思想。并且前面2篇文章的那种方法,代码的重复利用率不高。

       我们可以把DDLItem表给对象化,把表里的字段当作其属性,我先创建个对象类,类名为DDLItemInfo,代码如下所示:

using System;

 

namespace BindDropDownList

{

    /// <summary>

    /// 主要是把DDLItem表对象化,

    /// 把表的字段变为属性,可以任意的

    /// 获取或设置该属性的值。

    /// </summary>

    [Serializable]

    public class DDLItemInfo

    {

        //定义内部变量

        private int _id;

        private string _ItemName;

 

        //定义2重构造函数

        public DDLItemInfo(){}

 

        public DDLItemInfo( int id, string ItemName )

        {

            _id = id;

            _ItemName = ItemName;

        }

 

        //定义成员的方法

        public int id

        {

            get

            {

                return _id;

            }

            set

            {

                _id = value;

            }

        }

 

        public string ItemName

        {

            get

            {

                return _ItemName;

            }

            set

            {

                _ItemName = value;

            }

        }

    }

}

然后创建为该表使用的方法的类库,类名DDLItem.cs,代码如下所示:

using System;

using System.Collections;

using System.Data;

using System.Data.SqlClient;

 

namespace BindDropDownList

{

    /// <summary>

    /// DDLItem 表的各种SQL操作。

    /// </summary>

    public class DDLItem

    {

        public DDLItem(){}

 

        //定义数据库连接字串

        private const string SQL_CONN_STRING = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];

       

        //定义SQL语句

        private const string SQL_SELECT_DDLIIEMS = "select id, ItemName from DDLItem order by id desc";

       

        //构造一个方法来读取所有的DDLItem表里的记录

        public IList Get_DDLItems()

        {

            //实例化一个可动态增加长度的数组

            IList itemList = new ArrayList();

            //定义数据库连接

            SqlConnection myConn = new SqlConnection( SQL_CONN_STRING );

            //定义SQL命令

            SqlCommand myCommand = new SqlCommand( SQL_SELECT_DDLIIEMS, myConn );

            //打开数据库

            myCommand.Connection.Open();

            //定义一个SqlDataReader

            SqlDataReader rdr = myCommand.ExecuteReader();

            //开始循环读取记录

            while( rdr.Read() )

            {

                //构造一个实例化的DDLItem表对象

                DDLItemInfo itemInfo = new DDLItemInfo(

                    rdr.IsDBNull( 0 ) ? 0 : rdr.GetInt32( 0 ),

                    rdr.IsDBNull( 1 ) ? string.Empty : rdr.GetString( 1 )

                    );

                itemList.Add( itemInfo );

            }

            //关闭SqlDataReaderSqlConnection

            rdr.Close();

            myCommand.Connection.Close();

  

            return itemList;

        }

       

    }

}

 

上面就把我们要操作的方法都定义好了,下面就是怎么调用的问题了,再创建一个Aspx的页面,代码如下所示:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

 

namespace BindDropDownList

{

    /// <summary>

    /// Example3 的摘要说明。

    /// </summary>

    public class Example3 : System.Web.UI.Page

    {

        protected System.Web.UI.WebControls.DropDownList DropDownList1;

        protected System.Web.UI.WebControls.Button Button1;

   

        private void Page_Load(object sender, System.EventArgs e)

        {

            // 在此处放置用户代码以初始化页面

        }

 

        #region Web Form Designer generated code

        override protected void OnInit(EventArgs e)

        {

            //

            // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。

            //

            InitializeComponent();

            base.OnInit(e);

        }

       

        /// <summary>

        /// 设计器支持所需的方法 - 不要使用代码编辑器修改

        /// 此方法的内容。

        /// </summary>

        private void InitializeComponent()

        {   

            this.Button1.Click += new System.EventHandler(this.Button1_Click);

            this.Load += new System.EventHandler(this.Page_Load);

 

        }

        #endregion

 

        private void Button1_Click(object sender, System.EventArgs e)

        {

            //使用DDLItem类的Get_DDLItems方法,取得记录

            IList list = new DDLItem().Get_DDLItems();

            //判断有没有记录

            if( list.Count != 0 )

            {

                //把记录加到DropDownList1

                for( int i = 0 ; i < list.Count; i++ )

                {

                     DDLItemInfo itemInfo = ( DDLItemInfo )list[i];

                     DropDownList1.Items.Add( new ListItem( itemInfo.ItemName, itemInfo.id ) );

                }

            }

          

        }

    }

}

 

 

这个话,我们在以后管理DDLItem内容时,直接调用Get_DDLItems这个方法就可以列出所有的DDLItem信息,并且一次开发完毕后,对于DDLItem表的结构,通过DDLItemInfo类的属性就能一清二楚的知道,这样也提高效率。

 

DetailsView中DropDownList的绑定方式

在通常遇到的dropdownlist绑定一般是同数据库进行交互的。这次在DetailsView中绑定数据应用了其中的onDataBind和onPreRender事件。一般detailsview总数据绑...
  • rukia0811
  • rukia0811
  • 2011-07-19 10:55:19
  • 1117

关于DetailsView使用DropDownList1!

关于DetailsView使用DropDownList1在DetailsView中创建一个模板列,在模板列中加入DropDownList 例:                 0       1   ...
  • laolaowhn
  • laolaowhn
  • 2007-07-04 19:21:00
  • 2791

[ASP.NET]利用DataTable对DropDownList进行数据绑定

ASP.NET控件第一篇---DropDownlist 方法详见下方 public void LoadDropDownList() { try ...
  • Ali_Xia
  • Ali_Xia
  • 2016-06-29 13:29:22
  • 1380

DropdownList绑定的两种方法

 动态绑定方法一:动态绑定数据库中的字段。SqlConnection conn = UtilitySqlClass.OperateDataBase.ReturnConn();string strSQL...
  • qiushengb
  • qiushengb
  • 2009-08-27 21:33:00
  • 75721

JS前台动态无刷新绑定DropDownList

先调用后台Ajax方法获取返回的拼好的字符串 字符串的格式:var distValue =" text1 ,value1@text2,value2@text3";  var distQL = di...
  • namespacefeng
  • namespacefeng
  • 2012-01-10 14:28:20
  • 3979

ASP.net DropDownList数据绑定及使用详解

1.       dropdownlist 绑定数据 1.1  固定绑定(适合已经固定的数据绑定到dropdownlist) 实例: 选择性别 男 女     1.2  动态...
  • admindong
  • admindong
  • 2016-09-13 20:18:48
  • 1274

[Asp.Net]4种方法把数据绑定到Dropdownlist

第一种,把Array数组绑到dropdownlist 程序代码string[] Month =new string[7]{ "January", "February", "March", "April...
  • david_520042
  • david_520042
  • 2015-04-28 19:12:55
  • 2912

泛型list<T>绑定dropdownlist控件

定义类Ks 中读写属性 private int _kid; public int kid { get { return _kid; } set {...
  • qq2613
  • qq2613
  • 2012-11-24 10:20:33
  • 2325

Asp.Net--DropDownList与DataTable数据绑定的方法(C#)[学习笔记]

页面代码@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>DO...
  • canzer
  • canzer
  • 2007-09-01 02:06:00
  • 5096

js动态绑定dropdownList 部分代码

(function ($) {     $.fn.Schoolselected = function(settings, extraSettings) {         var options;...
  • a12345_asdfg
  • a12345_asdfg
  • 2014-02-12 16:44:06
  • 2292
收藏助手
不良信息举报
您举报文章:也谈绑定dropdownlist(3)
举报原因:
原因补充:

(最多只允许输入30个字)