登陆注册
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

同类推荐
  • 玩转手机

    玩转手机

    本书主要包括:手机的发展历史、手机知识、手机的选购与巧用、手机与网络、手机短信等内容。
  • 多媒体技术

    多媒体技术

    多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术多媒体技术
  • 中文版AutoCAD2011基础与应用案例教程

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

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

    如何组装电脑

    本书以问答的形式介绍了组装电脑的基本知识。内容包括:电脑硬件的部件组成、CPU的发展历程、CPU主频、内存的组成、内存的主要性能参数等。
  • 中文版AutoCAD2005辅助设计宝典

    中文版AutoCAD2005辅助设计宝典

    本书全面、详细地介绍了中文版AutoCAD2005的特点、功能以及使用方法和技巧。全书共分11章,前九章分别介绍了利用中文版AutoCAD2005进行辅助设计的方法和技巧,最后两章讲解了若干综合实例。
热门推荐
  • 万界此子不可留

    万界此子不可留

    无数强者们的咆哮声……弗利萨:“此子竟然是我增高的最大阻碍,留不得!”梅路艾姆:“此子会导致嵌合蚁种族的灭亡,不能留!”蓝染惣右介:“此子竟然进化到超越我所在的层次,绝不能留!”马歇尔·D·蒂奇:“此子是我成为王者道路上最大的障碍,留不得你!”宇智波斑:“不得不承认某些方面,我斑愿称此子为最强,留你不得!”……林槑现在很慌,我该怎么办?不能坐以待毙,我要活下去,我要反击!我要告诉他们此子可以留,还恐怖如斯!……“首先,我需要顺利出生!”(本书较为慢热,请耐心阅读,新人第一本书,会有很多不足的地方,我会吸取经验的。)
  • 玉锦添香

    玉锦添香

    片段一:“大舅,我们回家吧!”女孩又是一声轻柔的呼喊,“大舅,这里好黑,我怕!”男子的喉结向下一滑,直觉两腿间热乎乎的淌了一地。他一点一点的转过身子,当眼角的余光可以瞟见离自己不远处的地方时,他骇然僵住了。原本已经死透的尸体居然坐了起来,长长的发丝盖在尸体的身上……片段二:“吃了我的给我吐出来,拿了我的给我还回来!”男子沉吟良久,微起齿间:“如果我不呢?”“不?嗯哼,那就封嘴、剁手!”他旋即一笑,脱去衣衫,平静的躺在床上……·-·-·-·-·-·-·--·-·-·-·-·-·-·-·-·一句话简介:屌丝霉女的发家致富,翻身变白富美,遇见糕富帅的美好人生!
  • 心变之叶盎冰

    心变之叶盎冰

    俗话说“人之初性本善”,这句话说的非常有道理。因为没有人来到世上是邪恶的,善良是上天赐予每个人的,只不过随着环境的改变或人情的转变,人的性格也会随之改变,这就是“近朱者赤近墨者黑”。有人说:人生就像场旅途,在乎的是沿途的风景而不是目的地。可我认为风景固然重要,结局一样重要。本篇主人公叶盎冰是一个漂亮、天真善良的女孩子,是怎么变成他人眼中害怕的恶魔,她亲身的经历,她的是非曲直将由你们评判。
  • 网游之闯祸

    网游之闯祸

    “儿呀,听你伯说你在外面过得不错,做了份啥工作?”“我呀,法师咯!”“什么!?”“就是‘BIU!BIU!BIU!’射法术的那种法师!”“孩子他爸,叫你当初开网吧,这下好啦,报应来了,儿子都痴魔啦!”“爸妈你们不知道,现在这游戏不同以往,跟真实世界差不多,你们儿子我可是受到国家邀请,在里面保家卫国,荡平四方。”“真的?”“待我完成这次的任务,就能接你们出来,好好享享福啦!”……
  • 神戮鼎

    神戮鼎

    敢与地争,敢与天斗,只为了一个幼年承若————“好好的活着”
  • 乱世叶落

    乱世叶落

    师父说的对,魔族未灭,人心所在,天下分不久。可是最后的我,看着沉浸在胜利之中的这些子民,想到。魔族灭了,人心能在一起聚多久?
  • 平行时空之天赋合并

    平行时空之天赋合并

    平行时空一直都是我们幻想中,有很多人都一直觉得存在平行时空,有另外一个自己或者很多个自己在其他空间生活着,就算在这个时空的自己生活得很糟糕,但其他空间的自己也是多姿多彩的,相信有一天可以时空合并见到其他不同的自己并且可以合并天赋。
  • 总裁夫人又失踪了

    总裁夫人又失踪了

    女主多身份,男主高冷,霸道,唯独只爱女主,五岁的南宫夜看到奶萌的韩诗灵,就知道一生就要她了,高冷的他怎么才能收获女主的心,片场一,10岁的韩诗灵表白15岁的南宫夜,被拒绝,理由还小,片场二,“我是冤枉的”,我没有给你下药,18岁的韩诗灵望着23岁的南宫夜,望着身边的亲人,可是没有相信她,因为是她把果汁给南宫夜喝的,韩诗灵被韩父送出国,结果失踪了
  • 萝倾天下

    萝倾天下

    她是21世纪华夏医药世家齐家嫡女齐羽萝,一朝穿越为奥天大陆天云国镇国侯府哑女三小姐,为了母亲的遗愿,她从不曾怨恨和报复任何人,结果最后重复葬身火海,火灾重生,第三世,她痛定思痛,发誓要让仇人血债血偿!!!手上祖传的神秘盘丝镯,居然与她的两度死亡有着丝丝缕缕的关系,这是巧合?还是命中注定?【情节虚构,请勿模仿】
  • 夜将歌

    夜将歌

    生为乱世孤儿,以罪子之身创猛鬼,扫煌域,如格林,众美环绕,无限热血无限嚣张。