仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 380|回复: 9
打印 上一主题 下一主题

[学习教程] ASP网页编程之为DataGrid 写一个 DropDownListColumn...

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:37:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用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:07 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
小妖女 该用户已被删除
板凳
发表于 2015-1-24 16:50:56 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
简单生活 该用户已被删除
地板
发表于 2015-1-31 13:17:52 来自手机 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
兰色精灵 该用户已被删除
5#
发表于 2015-1-31 15:40:52 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
若相依 该用户已被删除
6#
 楼主| 发表于 2015-2-1 14:21:30 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
不帅 该用户已被删除
7#
发表于 2015-2-7 06:30:38 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
蒙在股里 该用户已被删除
8#
发表于 2015-3-6 18:40:09 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-13 05:11:34 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
变相怪杰 该用户已被删除
10#
发表于 2015-3-20 13:41:29 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 01:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表