知识大全 使用ASP.Net中的自定义控件
Posted 属性
篇首语:恐惧自己受苦的人,已经因为自己的恐惧在受苦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用ASP.Net中的自定义控件相关的知识,希望对你有一定的参考价值。
使用ASP.Net中的自定义控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
if(( data == True )||(data == true ))box Checked = true;
break;
default:break;
// <summary>
// 定义控件的属性readOnly
// </summary>
private bool readOnly = true;
类CheckBoxColumn继承于模板列TemplateColumn 它实现DataGrid控件中仅包含CheckBox控件的模板列CheckBoxColumn 模板列CheckBoxColumn实现两种模板列 即只读的模板列和可编辑的模板列 它们分别由构造函数CheckBoxColumn(String Name)和CheckBoxColumn(bool Immediate Postback String Name)实现 类CheckBoxColumn中的构造函数都创建一个子项CheckBoxItem 并根据模板列的属性设置子项的名称和是否为只读属性 类CheckBoxColumn还定义了子项的事件CheckedChanged 该事件在子项中的控件CheckBox的选择项改变时触发 类 CheckBoxColumn定义了回传属性AutoPostBack 数据域属性DataField 类CheckBoxColumn的程序代码如下
public class CheckBoxColumn :System Web UI WebControls TemplateColumn
// <summary>
// 初始化CheckBoxColumn
// </summary>
public CheckBoxColumn(String Name)
//设置控件为只读
viewItem = new CheckBoxItem(false Name); // SAW was false
this ItemTemplate = viewItem as ITemplate;
//设置控件为可编辑的
editItem = new CheckBoxItem(true Name);
this EditItemTemplate = editItem as ITemplate;
// <summary>
// 初始化CheckBoxColumn 并设置控件的回传属性
// </summary>
public CheckBoxColumn(bool ImmediatePostback String Name)
//设置控件为只读
viewItem = new CheckBoxItem(ImmediatePostback Name);
this ItemTemplate = viewItem as ITemplate;
//设置控件为可编辑的
editItem = new CheckBoxItem(true Name);
this EditItemTemplate = editItem as ITemplate;
AutoPostBack = ImmediatePostback;
// <summary>
// 设置控件CheckBoxColumn的事件
// </summary>
[NextPage]函数GetString(DataGridItem container Label CheckMsg String Name)用来获取控件myDataGrid中被选择的子项显示的文本 并把获取的文本添加到控件CheckMsg的属性Text中 函数GetString (DataGridItem container Label CheckMsg String Name)的程序代码如下
private void GetString(DataGridItem container Label CheckMsg String Name)
//获取单个列的值
Label tempLabel = (Label)container FindControl(Name);
if(tempLabel != null)
//设置控件CheckMsg的Text属性的值
CheckMsg Text += tempLabel Text;
运行效果
( )设置页面TestCheckBox aspx为应用程序的起始页面 按F 键运行 出现如图 所示的初始界面
图 页面TestCheckBox aspx的初始界面
( )单击页面TestCheckBox aspx中的【显示消息】按钮获取并显示myDataGrid控件中被选择的子项中的所有文本 此时页面TestCheckBox aspx如图 所示
图 显示myDataGrid控件中被选择的子项中的所有文本
( )单击页面TestCheckBox aspx中的myDataGrid控件中的第 个CheckBox控件 则控件CheckMsg显示myDataGrid控件中该子项的所有显示的文本 如图 所示
[NextPage]
row[column] = (i % == ) ? true:false;
else
//添加其他列的数据
row[column] = column ColumnName + i ToString();
dataTable Rows Add(row);
//返回创建的数据表
return(dataTable);
单击myDataGrid控件中的CheckBox控件触发事件checkCol_CheckedChanged(object sender EventArgs e) 该事件首先获取myDataGrid控件当前子项显示的文本 最后使用Label控件CheckMsg显示获取的文本 事件checkCol_CheckedChanged(object sender EventArgs e)的程序代码如下
private void checkCol_CheckedChanged(object sender EventArgs e)
//设置CheckBox控件的事件
CheckMsg Text = ;
CheckBox box = (CheckBox) sender;
if(box Checked == true)
//获取选择的CheckBox控件所在的DataGridItem
DataGridItem container = (DataGridItem) box NamingContainer;
//获取每列的值
GetString(container CheckMsg Name );
GetString(container CheckMsg Type );
GetString(container CheckMsg Data );
单击页面TestCheckBox aspx中的【显示消息】按钮触发事件ShowMsg_Click(object sender System EventArgs e) 该事件用来获取myDataGrid控件中被选择的子项中的所有文本 并使用Label控件CheckMsg显示获取的文本 事件 ShowMsg_Click(object sender System EventArgs e)的程序代码如下
private void ShowMsg_Click(object sender System EventArgs e)
CheckMsg Text = ;
foreach(DataGridItem container in myDataGrid Items)
//获取每列的值
CheckBox cBox = (CheckBox)container FindControl( MyBox );
if(cBox != null)
if(cBox Checked == true)
//获取选中列的值
GetString(container CheckMsg Name );
GetString(container CheckMsg Type );
GetString(container CheckMsg Data );
[NextPage]
// <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
getreturn(name);
setname = value;
// <summary>
// 定义控件的属性DataField
// </summary>
private string dataField;
public string DataField
getreturn dataField;
setdataField=value;
// <summary>
// 定义控件的属性AutoPostback
// </summary>
private bool autoPostBack = false;
public bool AutoPostBack
setautoPostBack = value;
getreturn 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> )
switch (t ToString())
//设置控件的值
case System Boolean :
[NextPage]——此文章摘自《ASP NET网络数据库开发实例精解》定价 ¥ 特价 ¥ 详细>>
控件myDataGrid用来显示数据 控件ShowMsg用来获取DataGrid控件中被选择的子项中的所有文本 控件CheckMsg用来显示控件ShowMsg获取的文本 页面TestCheckBox aspx的设计界面如 图 所示
图 页面TestCheckBox aspx的设计界面
页面TestCheckBox aspx的HTML设计代码如下
<%@ Page language= c# Codebehind= TestCheckBox aspx cs
AutoEventWireup= false Inherits= Example_ _ TestCheckBox %> AutoEventWireup= false Inherits= Example_ _ TestCheckBox %>
<HTML><HEAD><title>Example_ _ 使用ASP NET中的自定义控件</title></HEAD>
<asp:DataGrid id= myDataGrid runat= server
AutoGenerateColumns= False > AutoGenerateColumns= False >
<Columns>
<asp:TemplateColumn HeaderText= 名称 ><ItemTemplate>
<asp:Label ID= Name Runat= server Text= <%#
DataBinder Eval(Container DataItem Name ) %> >
</asp:Label>
</ItemTemplate></asp:TemplateColumn>
<asp:TemplateColumn HeaderText= 类型 ><ItemTemplate>
<asp:Label ID= Type Runat= server Text= <%#
DataBinder Eval(Container DataItem Type ) %> >
</asp:Label>
</ItemTemplate></asp:TemplateColumn>
<asp:TemplateColumn HeaderText= 数据 ><ItemTemplate>
<asp:Label ID= Data Runat= server Text= <%#
DataBinder Eval(Container DataItem Data ) %> >
</asp:Label>
</ItemTemplate></asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<asp:Button id= ShowMsg runat= server Text= 显示消息 ></asp:Button>
<asp:Label id= CheckMsg runat= server Width= %
ForeColor= Red > ForeColor= Red ></asp:Label>
</HTML>
[NextPage]自定义控件是ASP NET中很重要的一部分 使用它可以提高程序代码的重用性 即一个自定义控件在网页 自定义控件或控件的内部都可以再次使用 本实例创建的复选框控件列CheckBoxColumn自定义控件也可以在网站的任何地方再次使用
本实例介绍如何在ASP NET中创建自定义控件 如何使用自定义控件 以及如何在自定义控件中定义公开属性和方法的实现方法
.创建新ASP NET应用程序
在Visual Studio NET 集成开发环境中创建新的ASP NET Web应用程序 命名为Example_ _
.创建自定义控件CheckBoxColumn
在应用程序Example_ _ 中添加文件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;
[NextPage].设计页面TestCheckBox aspx的事件和函数
页面TestCheckBox aspx调用函数Page_Load(object sender System EventArgs e)初始化 该函数调用函数AddColumnToDataGrid()和函数BindData()分别实现在myDataGrid控件添加一个 CheckBoxColumn模板列和绑定myDataGrid控件的数据 函数AddColumnToDataGrid()在创建一个 CheckBoxColumn模板列时 同时还设置该模板列的属性DataField 属性HeaderText 以及CheckBox控件的事件 CheckedChanged 函数Page_Load(object sender System EventArgs e) AddColumnToData Grid()和BindData()的程序代码如下
private void Page_Load(object sender System EventArgs e)
AddColumnToDataGrid();
BindData();
private void AddColumnToDataGrid()
//添加一列复选框
CheckBoxColumn checkCol = new CheckBoxColumn(true MyBox );
checkCol DataField = Boolean ;
checkCol HeaderText = 复选框 ;
//添加复选框的事件
checkCol CheckedChanged += new EventHandler(checkCol_CheckedChanged);
//添加到myDataGrid控件中
myDataGrid Columns Add(checkCol);
private void BindData()
//绑定myDataGrid控件的数据
myDataGrid DataSource = CreateDataSource();
myDataGrid DataBind();
函数BindData()调用函数CreateDataSource()创建myDataGrid控件的数据源dataTable 函数CreateDataSource()首先定义数据表对象dataTable 并在dataTable对象中添加 个数据列 DataColumn 它们分别为 Name Type Data 和 Boolean 分别表示名称 类型 数据和布尔型数据 然后函数 CreateDataSource()通过for语句设置表对象dataTable中的数据 函数CreateDataSource()的程序代码如下
private DataTable CreateDataSource()
//创建数据表及其列
DataTable dataTable = new DataTable( MyData );
dataTable Columns Add(new DataColumn( Name typeof(string)));
dataTable Columns Add(new DataColumn( Type typeof(string)));
dataTable Columns Add(new DataColumn( Data typeof(string)));
dataTable Columns Add(new DataColumn( Boolean typeof(bool)));
//添加五行数据
for(int i = ; i < ; i++)
//添加一行数据
DataRow row = dataTable NewRow();
foreach(DataColumn column in dataTable Columns)
//添加CheckBox控件的数据
if(column DataType == typeof(bool))
[NextPage]
——此文章摘自《ASP NET网络数据库开发实例精解》定价 ¥ 特价 ¥ 详细>>
public event EventHandler CheckedChanged
add
//添加事件
viewItem CheckedChanged += value;
editItem CheckedChanged += value;
remove
//移除事件
viewItem CheckedChanged = value;
editItem CheckedChanged = value;
// <summary>
// 定义控件的AutoPostBack属性
// </summary>
public bool AutoPostBack
setviewItem AutoPostBack = value;editItem AutoPostBack = value;
getreturn viewItem AutoPostBack;
// <summary>
// 定义控件的DataField属性
// </summary>
public string DataField
getreturn viewItem DataField;
setviewItem DataField = value;editItem DataField = value;
// <summary>
// 定义控件的viewItem
// </summary>
private CheckBoxItem viewItem;
// <summary>
// 定义控件的editItem
// </summary>
private CheckBoxItem editItem;
.设计页面TestCheckBox aspx
cha138/Article/program/ASP/201311/21761相关参考
使用ASP.Net中的自定义控件[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
使用ASP.Net中的自定义控件[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
使用ASP.Net中的自定义控件[7] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
使用ASP.Net中的自定义控件[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
使用ASP.Net中的自定义控件[8] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
使用ASP.Net中的自定义控件[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
使用ASP.Net中的自定义控件[6] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
Asp.net中DataGrid控件的自定义分页 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NET中的自定义脚本回调 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET客户
基于ASP.NET的自定义分页显示[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 引言