登陆注册
8724600000030

第30章 软件构造(9)

Dim help As SqlHelper

块内加以分组。这样后面用到的H1中的内容都会自动应用中的属性值。H1{COLOR:red;TEXT—ALIGN:center }

Dim dt As DataTable=help.ExecuteDataset(SqlHelper.ConnectionString, Command—Type.Text,”select OperatorAccount from T_Operator where OperatorAccount="”&;account&;”"”) .Tables(0)

If dt Is Nothing Then

Return False

End If

If dt.Rows.Count>;=1 Then

Return True

Else

Return False

End If

End Function

’添加的确定

Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs ) Handles Button1.Click

If Me.InsertAccountExist(Me.txtInsertAcc.Text.Trim)Then

Me.Insertvalidator.IsValid=False

End If

If Not Page.IsValid Then

Exit Sub

End If

’插入

Dim row As New T_OperatorRow

row.OperatorAccount=Me.txtInsertAcc.Text.Trim

row.Password=Me.txtInsertPass.Text.Trim

row.RealName=Me.txtInsertName.Text.Trim

row.OperatorType=Me.DropDownList2.SelectedItem.Text

Try

Me.near.T_OperatorCollection.Insert(row)

Me.binddata()

Me.Panel1.Visible=True

Me.PanelInsert.Visible=False

Me.PanelUpdate.Visible=False

Catch ex As Exception

End Try

End Sub

当然了,对于更新操作,也可以在DataGrid中的模板列中加入其他控件来实现。

下面再给大家具体介绍,利用模板实现“更新”功能。

①添加列:添加四个模板列,一个按钮列。

在三个模板列中的ItemTemplate部分加入Label控件,分别把Label控件的text属性绑定到数据库中的列Stor_id.、stor_name、City。然后在EditItemTemplate和FooterTemplate部分加入Textbox控件,分别用于编辑和增加数据。按钮列中有三种类型的按钮,选择“编辑、更新、取消”按钮。在另一个模板的Item—Template和FooterTemplate加入button控件,用于删除和添加。

②为“编辑”按钮增加事件。

Private Sub doEdit(ByVal source As Object,ByVal e As system.Web.UI.WebControls. DataGridCommandEventArgs)Handles DataGrid1.EditCommand

Me.DataGrid1.ShowFooter=False

Me.DataGrid1.EditItemIndex=e.Item.ItemIndex

binddata()

End Sub

Private Sub doCancel(ByVal source As Object,ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs)Handles DataGrid1.CancelCommand

Me.DataGrid1.ShowFooter=True

Me.DataGrid1.EditItemIndex=—1

binddata()

End Sub

③为“删除”和“添加”按钮增加事件。

Private Sub doInsertDel ( ByVal source As Object,ByVal e As System.Web.UI.WebControls. DataGridCommandEventArgs)Handles DataGrid1.ItemCommand

If e.CommandName=”Insert”Then

Dim storeid As String

Dim txtstoreid As TextBox

txtstoreid=e.Item.FindControl(”add_storID”)

storeid=txtstoreid.Text

Dim storename As String

Dim txtstorename As TextBox

txtstorename=e.Item.FindControl(”add_storname”)

storename=txtstorename.Text

Dim sql As SqlHelper

Dim ss As String=”insert into stores(stor_id,stor_name)values("”&;storeid&;”","”&;storename&;”")”

sql.ExecuteNonQuery(SqlHelper.ConnectionString,CommandType.Text,ss)

Me.DataGrid1.EditItemIndex=—1

binddata()

End If

If e.CommandName=”Delete”Then

Dim strkey As String=CType(e.Item.Cells(0).Controls(1),Label).Text

Dim sql1 As SqlHelper

Dim sqldel As String=”delete stores where stor_id="”&;strkey&;”"”

sql1.ExecuteNonQuery(SqlHelper.ConnectionString,CommandType.Text,sqldel)

binddata()

End If

End Sub

④增加分页和排序功能。

分页我们已经介绍过了。为了增加排序功能,先要进入DataGrid的“属性生成器”,然后选中第一个模板列,在下面的“排序表达式”中写入列名Stor_id,在“页眉文本”输入StoreID,作为DataGrid中的列标题。程序运行的时候,单击这个列标题,就会根据列Stor_id进行排序了。

增加事件:

Private Sub DataGrid1_SortCommand(ByVal source As Object,ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DataGrid1.SortCommand

Dim sql As SqlHelper

sql.IniDa(SqlHelper.ConnectionString,”select*from stores”,da,dt)

Me.DataGrid1.DataSource=dt.DefaultView

dt.DefaultView.Sort=e.SortExpression

Me.DataGrid1.DataBind()

End Sub

这个例子中,是用模板列进行编辑,然后在FooterTemplate部分进行添加操作,结构紧凑,操作方便。

8.如何使用CSS

1)什么是样式表

样式表是HTML文档中元素样式定义的结合。

2)样式的实现

①CSS样式可以通过内联方式放在单个HTML元素内。

<; h1 style=”FONT—WEIGHT:bold;TEXT—TRANSFORM:uppercase;COLOR:green;TEXTDECORATION:

underline”>; hello

②也可以在Web页head部分的

③从单独CSS样式表文件中导入。

3)样式表的优先级

既然CSS有很多种实现方式,那么也就涉及不同实现方式的优先。

级别:以上面为准,优先级为:i>;ii>;iii。也就是说,优先级准则为:局部大于全局。

4)为页面元素配置CSS样式的具体CLASS

例如,把页面的一个Button的属性CssClass设置为button(在样式表里面定义的一个样式规则),就可以使页面中的Button控件都遵从一样的样式。

9.如何上传图片和文件

首先在前台页面需要加控件的地方,在其html代码里加上

在其后台.vb文件加上以下代码:

Private Sub UploadFile()

’判断是否选择了上传的文件

If FileUp.PostedFile.FileName<;>;””Then

Dim filename As String=FileUp.PostedFile.FileName

获取上传文件的扩展名

Dim index As Integer=filename.LastIndexOf(”.”)

Dim fileextendname As String=filename.Substring(index)

’给上传的文件重新命名

Dim newfilename As String=FileUp.PostedFile.ContentLength.ToString_&;fileextend1

name

’把选择的文件上传到服务器上相虚拟目录下Image文件架里

FileUp.PostedFile.SaveAs(Server.MapPath(”Image”&;newfilename))

End If

End Sub

10.如何使用树形控件

为了实现树形结构,需要用到树形控件Treeview,该控件可以从微软网站下载。这里使用嵌套循环的思路来完成,这也是最简单的思路,其缺点是代码的执行效率比较低下。对于这种类型的表,创建树还有很多改进的算法,可以使用递归,对于顺序表,还有更为简洁的算法。

如果只创建三层的树,可以参见以下代码:

Public Sub InitialTree()

Dim level1,level2,level3 As Int16

Dim dt1,dt2,dt3 As DataTable

’获取所有根节点

dt1=GetData(”select*from category where ParentCategoryID="0"”)

’第一层次的循环

For level1=0 To dt1.Rows.Count—1

Dim node1 As New Microsoft.Web.UI.WebControls.TreeNode

node1.Text=dt1.Rows(level1).Item(”CategoryName”)

’获取某一根节点的所有子节点

dt2=GetData(”select*from category where ParentCategoryID="”+dt1.Rows(level1).Item(”categoryid”)+”"”)

’第二层次的循环

For level2=0 To dt2.Rows.Count—1

Dim node2 As New Microsoft.Web.UI.WebControls.TreeNode

node2.Text=dt2.Rows(level2).Item(”CategoryName”)

’获取第二层节点的所有子节点

dt3=GetData(”select* from category where ParentCategoryID="”+dt2.Rows(level2).Item(”categoryid”)+”"”)

’第二层次的循环

For level3=0 To dt3.Rows.Count—1

Dim node3 As New Microsoft.Web.UI.WebControls.TreeNode

同类推荐
  • 创业在微软

    创业在微软

    身处软件巨擘微软之中,何来“创业”二字?本书详尽勾勒了微软亚洲工程院(ATC)的成长历程,披露了工程院人在“创业”过程中不为人知的种种酸甜苦辣,生动展现了工程院的独特文化,并从另一个角度展现了其领袖人物张宏江博士的心路历程和管理思想。
  • 如何处理电脑故障

    如何处理电脑故障

    本书以问答的方式介绍了电脑会出现的各种故障,内容包括了音箱声音失真,如何处理?如何做好电脑的日常维护等等问题。
  • 中文版AutoCAD2011基础与应用案例教程

    中文版AutoCAD2011基础与应用案例教程

    本书采用项目教学方式,通过大量案例全面介绍了AutoCAD2011软件的功能和应用技巧。全书共分8个项目,内容涵盖AutoCAD2011基本操作,绘制与编辑图形,标注尺寸,添加文字注释与应用表格,创建与应用块,绘制与编辑三维图形,图形输出等。
  • 都是网络惹的祸

    都是网络惹的祸

    本书分网络游戏、网络聊天、网络隐私、网络网吧安全、网络文化、网络语言、网络犯罪、网络陷阱等栏目,从不同的视角探讨了在当今社会的网络现象。
  • 一本书读懂大数据

    一本书读懂大数据

    本书是深入研究互联网思维的经典之作,从互联网思维的定义到互联网思维应用的具体案例表现。作者深入浅出、条分缕析,全面阐述互联网思维的内核与精神,逐一点评当前关于互联网思维的各种观点。本书从最初级的互联网思维应用到高端的粉丝经济,平台建设,自媒体营销的方法都有详细讲解介绍。让读者了解什么是互联网思维的同时还能学会把互联网思维运用到自己的工作学习已经生活中。
热门推荐
  • 何处不清明

    何处不清明

    昔日将军名传,平匪寇安疆边一朝身世曝光忌嫌,功德值几两钱放下手中无难,隐山间结良缘不辞当年被德蒙恩,卷入这番纠缠风雪催笛声渐,再为你把酒添看这血染红刀尖,事未了心已倦杀伐重恨当年,今朝父子难全忍见胡沙堪埋艳骨,伶仃客何人怜清心诀素手剑,具茨山江湖巅海棠树下终成双全,公子浅笑安然神医济世悬壶,名与情怎生权少年桀骜何惧流言,将风尘付河山风雪催笛声渐,再为你把酒添看这血染红刀尖,事未了心已倦杀伐重恨当年,今朝父子难全忍见胡沙堪埋艳骨,伶仃何人怜说书人说当年,闹东京几人还守这方河清海晏,地下尸骨未寒叹往事如云烟,独一人宿江边心存玉雪自得清明,梦中人再相见
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 我的凤先生

    我的凤先生

    “若当来世,我定护你一世”“先生别闹了,快和我回家,小心榴莲键盘搓衣板啊!”“唉唉唉,那你先给我亲一个”“哟,胆子肥了!”“就一个,两个也行,我不嫌多”“你不嫌多,我还嫌多!”……
  • 阿拉德梦幻之旅

    阿拉德梦幻之旅

    风景绚丽的格兰之森,巍峨雄壮的北方雪山,深邃无垠的时空之门.........之间发生的可悲、可叹的故事精彩绝伦。终于有一天,吸引了一个异界游客的注意.........介绍无力,总结下来,就是主角四处探险的故事.....
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 末世之我是逗比女神

    末世之我是逗比女神

    短发+平扎+逗比+158cm=叶辞平头+肌肉+187cm+20cm=男主--------------------------------装逼版本:地球在一夜之间变得充满了血腥,一种病毒正在悄悄的渗入人类的身体,不少人类变成了没有人性的丧尸。当然,上天是公平的,也创就了变异者和异能者……
  • 变态心理学

    变态心理学

    有病不可怕,可怕的是不知道自己有病,心理疾病尤其如此。你是否经常无意识重复同一行为?你是否每天郁郁寡欢、无所适从?你是否总是认为自己身体有问题?难道得了绝症?你是否怎么吃都觉得不饱,还是恨不得全世界的人都比自己胖?你有没有发现身边的他总是真诚地说着一个又一个谎言?你有没有发现原本熟悉的世界突然间变得无比陌生?你已经身处危机边缘,请对号入座。
  • 终极之门

    终极之门

    《终极之门》是奇幻小说。在一个宇宙中,地球上住着4种智慧生物,精灵族、人族、矮人族各出一个战士,完成一英特殊的任务。他们须向极西而行,寻找能拯救世界的圣物。他们历经千辛万苦,闯过5道关卡,完成任务后,成为自己族人的首领,并齐心合力,让各族和平相处,过上了美好的生活。
  • 穿越皇者

    穿越皇者

    陈风,一次意外穿越到了长生界,醒来后,发现自己成为了这里陈家族中废物后辈,受尽同辈欺凌,为了生存,来自地球的他又将如何面对家族中的明争暗斗?
  • 名门大少娇贵妻

    名门大少娇贵妻

    她,是见不得光的私生女,一笑温婉,见他三次,从此倾心。他,是覆手遮天的勒家少爷,为了她,不惜与家族为敌。他宠她,宠之入骨,却只恨,不能给她一个名分。这是一场权力,地位,阴谋的斗争……家族的逼迫,兄弟的背叛,旧情人的回归……深闺大院的重重险恶,他们究竟该如何安度?