摘要
承上一篇文章「GridView+FormView 示范资料 新增/修改/删除」,有人询问是否能简化程序代码;答案是可行的,方法就是由服务器控件下手。在此文章中,我们将扩充 GridView 及 FormView 控件,在 GridView 控件中新增 FormViewID 属性,关连至指定的 FormView 控件 ID,就可以轻易达到上篇文章中相同效果。

GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)

扩充 GridView 控件
首先我们继承 GridView 下来扩充功能,新增 FormViewID 属性,用来设定连结的 FormView 控件 ID。然后把原本在 GridView 的 RowCommand 事件中的程序代码,搬至 OnRowCommand 覆写方法中。
扩充功能的 TBGridView 控件完整程序代码如下,其中 OnLoad 方法中,会去判断 FormView 若为 TBFormView (扩充功能的 FormView),会去设定其 GridView 属性。
  1GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System
  2GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Collections.Generic
  3GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.ComponentModel
  4GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Text
  5GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Web
  6GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Web.UI
  7GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Web.UI.WebControls
  8GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Drawing
  9GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)
 10End Namespace

扩充 FormView 控件
接下来继承 FormView 下来扩充功能,首先要新增一个 GridView 属性,当 TBGridView 有设定 FormViewID 时,且 FormView 的型别为 TBFormView 时,会去设定 TBFormView.GridView 属性,让 TBFormView 控件知道系结来源的 GridView,以做后序的相关程序控管。
TBFormView 的程序代码如下,一样把原本 FormView 相关事件的程序代码搬过来控件的程序代码中。
  1GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System
  2GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Collections.Generic
  3GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.ComponentModel
  4GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Text
  5GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Web
  6GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Web.UI
  7GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Web.UI.WebControls
  8GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports System.Drawing
  9GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)Imports Bee.Lib.TBLibFunc
 10GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)
 11End Namespace

使用 TBGridView 及 TBFormView 控件
以上篇的范例程序做修改,只要将 aspx 中 GridView 置换为 TBGridView,而 FormView 置换为 TBFormView,并设定 TBGridView 的 FormViewID 属性为 TBFormView 控件 ID 即可。

GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)<bee:TBGridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)    CellPadding
="4" DataKeyNames="EmployeeID" DataSourceID="SqlDataSource1" EmptyDataText="沒有資料錄可顯示。"
GridView+FormView 示范数据 新增/修改/删除(进阶篇:服务器控件)    ForeColor
="#333333" GridLines="None" PageSize="5" FormViewID="FormView1">

而 aspx.vb 的程序代码可以简化如下,原本 GridView 及 FormView 相关操作的控管都可以省略掉。

 1End Class

后记
也许有人会问,可不可以连上述的程序代码都省略了,答案也是肯定的,只要去扩充 CommandField 及 TextBox 控件就可以达到零程序代码。对于 CommandField 的部分,要让 CommandField 的 Header 有辨法放「新增」钮;而 TextBox 的部分,要让 TextBox 有辨法自行判断所在的 FormView 的 CurrentMode,自行决定本身是否要显示或隐藏。

相关文章:

  • 2022-12-23
  • 2021-08-24
  • 2021-12-05
  • 2021-06-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-26
  • 2021-09-19
相关资源
相似解决方案