仓酷云

标题: ASP网页编程之为DataGrid 写一个 DropDownListColumn... [打印本页]

作者: 若相依    时间: 2015-1-16 23:37
标题: ASP网页编程之为DataGrid 写一个 DropDownListColumn...
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。datagridNet下有一个类DataGridColumn

作为DataGrid控件的分歧列范例的基类。

有关此范例一切成员的列表,请参阅DataGridColumn成员。

System.Object
System.Web.UI.WebControls.DataGridColumn
System.Web.UI.WebControls.BoundColumn
System.Web.UI.WebControls.ButtonColumn
System.Web.UI.WebControls.EditCommandColumn
System.Web.UI.WebControls.HyperLinkColumn
System.Web.UI.WebControls.TemplateColumn

我们完成能够写一个承继DataGirdColumn的类,如许就成了。DropDownListColumn,CheckBoxListColumn等。



控件的代码以下。

usingSystem;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Collections;
usingSystem.Data;


namespaceCustomColumn
{
///<summary>
///DataGridCustomColumn的择要申明。
///</summary>
publicclassDropDownListColumn:System.Web.UI.WebControls.DataGridColumn
{
//数据源
publicDataTableDataSource;
//显现的文本字段
publicstringDataTextField;
//
publicstringDataValueField;

//DataGrid中要绑定的字段

publicstringDataField;


publicstringDataShowField;


publicDropDownListColumn()
{
//
//TODO:在此处增加机关函数逻辑
//


}

publicoverridevoidInitializeCell(TableCellcell,intcolumnIndex,ListItemTypeitemType)
{
base.InitializeCell(cell,columnIndex,itemType);
switch(itemType)
{
caseListItemType.Header:
cell.Text=this.HeaderText;
break;

caseListItemType.Item:caseListItemType.AlternatingItem:
cell.DataBinding+=newEventHandler(cell_ItemDataBinding);
break;

caseListItemType.EditItem:
cell.DataBinding+=newEventHandler(cell_EditItemDataBinding);
//========================
DropDownListdrp=newDropDownList();
cell.Controls.Add(drp);
break;


}
}

privatevoidcell_ItemDataBinding(objectsender,EventArgse)
{
TableCellcell=(TableCell)sender;
DataGridItemDGI=(DataGridItem)cell.NamingContainer;
try
{
cell.Text=(DataBinder.Eval(DGI.DataItem,DataShowField)).ToString();
}
catch
{
thrownewException("请设置字段");
}
}

privatevoidcell_EditItemDataBinding(objectsender,EventArgse)
{
TableCellcell=(TableCell)sender;
DropDownListdrp=(DropDownList)cell.Controls[0];;
ListItemitem;
DataGridItemDGI;
try
{

//================
drp.Items.Add(newListItem("请选择","-1"));
//

for(intk=0;k<=DataSource.Rows.Count-1;k++)
{
DataRowdr=DataSource.Rows[k];
item=newListItem();
item.Text=dr[DataTextField].ToString();
item.Value=dr[DataValueField].ToString();
drp.Items.Add(item);
}



DGI=(DataGridItem)cell.NamingContainer;

stringValue=DataBinder.Eval(DGI.DataItem,DataField).ToString();

item=drp.Items.FindByValue(Value);
if(item!=null)
{
item.Selected=true;
}
}
catch
{
thrownewException("数据源不合错误。");
}

}


}
}



Aspx页面挪用。

先注册:

<%@RegisterTagPrefix="DrpColumn"NameSpace="CustomColumn"Assembly="DropDownListColumn"%>

挪用

<asp:DataGridid="dgTeacher"runat="server"Width="100%"AutoGenerateColumns="False"AllowPaging="True"
CssClass="DataGrid"BorderColor="#333333"BorderStyle="Solid">
<Columns>
<DrpColumn:DropDownListColumnHeaderText="导师"></DrpColumn:DropDownListColumn>
<asp:BoundColumnDataField="SpecName2"ReadOnly="True"HeaderText="主修专业"></asp:BoundColumn>
<DrpColumn:DropDownListColumnDataShowField="SpecName"DataField="SpecGUID"HeaderText="兼岗专业"></DrpColumn:DropDownListColumn>
<asp:BoundColumnDataField=&</p>使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。
作者: 分手快乐    时间: 2015-1-19 21:08
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 小妖女    时间: 2015-1-24 16:50
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: 简单生活    时间: 2015-1-31 13:17
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
作者: 兰色精灵    时间: 2015-1-31 15:40
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
作者: 若相依    时间: 2015-2-1 14:21
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
作者: 不帅    时间: 2015-2-7 06:30
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
作者: 蒙在股里    时间: 2015-3-6 18:40
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
作者: 愤怒的大鸟    时间: 2015-3-13 05:11
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
作者: 变相怪杰    时间: 2015-3-20 13:41
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2