注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Dotnet >> ASP.NET >> Dotnet正文

使用ASP.Net中的自定义控件

文章来源:中国IT实验室收集整理 作者:佚名 更新时间:2008-8-23 15:17:35 【 】 【加入收藏

     自定义控件是ASP.NET中很重要的一部分,使用它可以提高程序代码的重用性,即一个自定义控件在网页、自定义控件或控件的内部都可以再次使用。本实例创建的复选框控件列CheckBoxColumn自定义控件也可以在网站的任何地方再次使用。

    本实例介绍如何在ASP.NET中创建自定义控件、如何使用自定义控件,以及如何在自定义控件中定义公开属性和方法的实现方法。

    1.创建新ASP.NET应用程序

    在Visual Studio .NET 2003集成开发环境中创建新的ASP.NET Web应用程序,命名为Example_12_5。

    2.创建自定义控件CheckBoxColumn

    在应用程序Example_12_5中添加文件CheckItem.cs和文件 CheckColumn.cs。其中第一个文件定义类CheckBoxItem实现CheckBox控件;第二个文件定义类CheckBoxColumn 实现DataGrid控件中的CheckBoxColumn列。类CheckBoxItem继承于接口ITemplate,并在其中定义了标识控件名称的属性Name、标识控件数据域的属性DataField、标识控件是否为只读的属性ReadOnly、标识控件是否提交回传的属性 AutoPostBack和绑定控件数据的事件BindData()、当控件的选择项改变时触发的事件OnCheckChanged等。类 CheckBoxItem的程序代码如下:

  internal class CheckBoxItem : ITemplate
    {
    // <summary>
    // CheckBoxItem的构造函数
    // </summary>
    // <param name="editable">控件是否为可编辑</param>
    public CheckBoxItem(bool editable,string Name)
    {
    name = Name;
    readOnly = (editable==true)?false:true;
    }
    // <summary>
    // 实例化CheckBox控件,并添加到容器中
    // </summary>
    // <param name="container">添加控件的容器</param>
    void ITemplate.InstantiateIn(Control container)
    {
    //创建CheckBox控件
    CheckBox box = new CheckBox();
    //设置控件的属性和事件
    box.ID       = name;
    box.DataBinding += new EventHandler(this.BindData);
    box.AutoPostBack = autoPostBack;
    box.CheckedChanged += new EventHandler(this.OnCheckChanged);
    container.Controls.Add(box);
    }
    // <summary>
    //定义控件的事件CheckChanged
    // </summary>
    public event EventHandler CheckedChanged;


  // <summary>
    // 设置控件的事件OnCheckChanged
    // </summary>
    private void OnCheckChanged(object sender, EventArgs e)
    {
    if (CheckedChanged != null){CheckedChanged(sender, e);}
    }
    // <summary>
    //定义控件的属性Name
    // </summary>
    private string name;
    public string Name
    {
    get{return(name);}
    set{name = value;}
    }
    // <summary>
    // 定义控件的属性DataField
    // </summary>
    private string dataField;
    public string DataField
    {
    get{return dataField;}
    set{dataField=value;}
    }
    // <summary>
    // 定义控件的属性AutoPostback
    // </summary>
    private bool autoPostBack = false;
    public bool AutoPostBack
    {
    set{autoPostBack = value;}
    get{return autoPostBack;}
    }
    // <summary>
    // 定义控件的数据绑定函数BindData()
    // </summary>
    private void BindData(object sender, EventArgs e)
    {
    //找到CheckBox控件
    CheckBox box = (CheckBox) sender;
    DataGridItem container = (DataGridItem) box.NamingContainer;
    box.Checked = false;
    box.Enabled = (readOnly == true) ? false:true;
    //获取数据
    string data =
    ((DataRowView) container.DataItem)[dataField].ToString();
    //获取数据类型
    Type t = ((DataRowView)container.DataItem).DataView.Table.Columns[
    dataField].DataType;
    if (data.Length>0)
    {
    switch (t.ToString())
    {   //设置控件的值
    case "System.Boolean":
   if(( data == "True")||(data == "true")){box.Checked = true;}
    break;
    default:break;
    }
    }
    }

  // <summary>
    // 定义控件的属性readOnly
    // </summary>
    private bool readOnly = true;
    }


  

  • 上一篇Dotnet:

  • 下一篇Dotnet:
  • 最 新 热 门
     SOA and Web services 新手入门i学习
     浅谈Web Services版本控制
     J2EE vs .NET-建置XML WebServices
     利用.NET FileStreams将DTD插入XML文件中_Q…
     XML开发入门基础:XML和HTML的区别
     带你认识Eclipse XML编辑器
     XML开发入门基础:使用CSS显示XML
     XML开发入门基础:查看 XML 文件
     XML开发入门基础:XML 浏览器支持
     XML开发入门基础:XML 验证
    最 新 推 荐
     使用Exist属性来判断控件是否存在
     浅谈ASP.NET验证码技术
     编程者必须学习的10项.NET技术
     .NET中加密和解密的实现方法
     asp.net 2.0多语言网站开发解决方案
     .NET 2.0中直接得到页面HTML代码
     .Net开发关于命名空间和目录划分
     ASP.NET 中整合JavaScript技巧
     asp.net中生成缩略图并添加版权
     asp.ne开发中t跳转页面的三种方法比较
    相 关 文 章

    XML开发入门基础:使用CSS显示XML
    单元测试View不使用Web Server
    vb.net中应用ArrayList 实例
    关于ASP.NET技术的学习顺序问题
    vb.net GDI+:使用DrawString显示文本
    vb.net使用TreeView 控件显示文件夹列表
    如何用Visual Basic编写病毒
    visual basic 6.0遍历文件夹下所有文件
    vb.net中使用GetPrivateProfileString访问I…
    总结:使用LINQ来简化编程的7个技巧

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用