`
hecal
  • 浏览: 74692 次
社区版块
存档分类
最新评论

实现在datagrid里任意位置插入一行

 
阅读更多

1. 在datagrid里创建4个BoundColumn和一个LinkButton。
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 110; LEFT: 16px; POSITION: absolute; TOP: 168px"
Visible="True" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="ID" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="NUM1" HeaderText="NUM1"></asp:BoundColumn>
<asp:BoundColumn DataField="NUM2" HeaderText="NUM2"></asp:BoundColumn>
<asp:BoundColumn DataField="NUM3" HeaderText="NUM3"></asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" HeaderText="Edit!" CancelText="Cancel"
EditText="Edit"></asp:EditCommandColumn>
</Columns>
</asp:DataGrid>
2.通过OracleDataAdapter的Fill函数获得数据,并自动关闭连接
Dim OraclDataSet As DataSet
Dim OraclDataAd As OracleDataAdapter
Dim OrclCnn As OracleConnection
Try
OrclCnn = New OracleConnection
OrclCnn.ConnectionString = "Data Source=edc81;User Id=test;Password=test"

OraclDataSet = New DataSet
OraclDataAd = New OracleDataAdapter("select ID,NUM1,NUM2,NUM3 from test1", OrclCnn)
OraclDataAd.Fill(OraclDataSet)
Session("RecordSet") = OraclDataSet
Session("SelectedIndex") = OraclDataSet.Tables(0).Rows.Count
DataGrid1.DataSource = OraclDataSet.Tables(0).DefaultView
DataGrid1.DataBind()
Catch ex As Exception
Throw ex
Finally

End Try
3. datagrid的Edit事件
Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
DataGrid1.EditItemIndex = e.Item.ItemIndex
Session("SelectedIndex") = e.Item.ItemIndex
BindDataGrid()
End Sub
4. datagrid的Cancel事件
Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
DataGrid1.EditItemIndex = -1
BindDataGrid()
End Sub
5. datagrid的Update事件
Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
''略
End Sub
6. 点button在datagrid的任意位置插入一行
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim OrclDataTable As DataTable
Dim TmpOrclDataTable As DataTable
Dim TmpOrclDataRow As DataRow
Dim OrclDataRow As DataRow
Dim OrclDataColumn As DataColumn
Dim isInserted As Boolean
Dim OraclDataSet As DataSet
Dim intSelectedIndex As Integer
Dim DataGrid1 As DataGrid

Try
isInserted = False
OraclDataSet = Session("RecordSet")
intSelectedIndex = Session("SelectedIndex")
If OraclDataSet Is Nothing Then
Exit Sub
End If
OrclDataTable = New DataTable
OrclDataColumn = New DataColumn("ID", GetType(Int32))
OrclDataTable.Columns.Add(OrclDataColumn)
OrclDataColumn = New DataColumn("NUM1", GetType(Int32))
OrclDataTable.Columns.Add(OrclDataColumn)
OrclDataColumn = New DataColumn("NUM2", GetType(Int32))
OrclDataTable.Columns.Add(OrclDataColumn)
OrclDataColumn = New DataColumn("NUM3", GetType(Int32))
OrclDataTable.Columns.Add(OrclDataColumn)

TmpOrclDataTable = OraclDataSet.Tables(0)
OrclDataRow = OrclDataTable.NewRow()
OrclDataRow("ID") = 5
OrclDataRow("NUM1") = 1
OrclDataRow("NUM2") = 2
OrclDataRow("NUM3") = 3

If intSelectedIndex < TmpOrclDataTable.Rows.Count Then

Dim i As Integer
For i = 0 To intSelectedIndex - 1
isInserted = True
Dim inOrclDataRow As DataRow
inOrclDataRow = OrclDataTable.NewRow()
inOrclDataRow = TmpOrclDataTable.Rows(i)

OrclDataTable.ImportRow(inOrclDataRow)
Next

If isInserted = True Then
OrclDataTable.NewRow()
End If
OrclDataTable.Rows.Add(OrclDataRow)

For i = intSelectedIndex To TmpOrclDataTable.Rows.Count - 1
Dim inOrclDataRow As DataRow
Dim intTmpOrclDataRow As DataRow
inOrclDataRow = OrclDataTable.NewRow()
intTmpOrclDataRow = TmpOrclDataTable.Rows(i)
OrclDataTable.ImportRow(intTmpOrclDataRow)
Next

Else
Dim i As Integer
For i = 0 To TmpOrclDataTable.Rows.Count - 1
Dim inOrclDataRow As DataRow
inOrclDataRow = OrclDataTable.NewRow()
inOrclDataRow = TmpOrclDataTable.Rows(i)
OrclDataTable.ImportRow(inOrclDataRow)
Next
OrclDataTable.NewRow()
OrclDataTable.Rows.Add(OrclDataRow)
End If

Dim NewOraclDataSet As DataSet
NewOraclDataSet = New DataSet
NewOraclDataSet.Tables.Add(OrclDataTable)
OraclDataSet.Dispose()
Session("RecordSet") = NewOraclDataSet
'DataGrid1 = MultiPage1.FindControl("DataGrid1")
DataGrid1.DataSource = NewOraclDataSet.Tables(0).DefaultView
DataGrid1.DataBind()
Catch ex As Exception
Throw ex

Finally

End Try
End Sub

分享到:
评论

相关推荐

    delphi 开发经验技巧宝典源码

    0089 实现直接插入法排序 61 第4章 函数应用 63 4.1 字符串处理函数 64 0090 使用Uppercase函数将小写字母转换为大写字母 64 0091 使用Lowercase函数将大写字母转换为小写字母 64 0092 使用Copy函数获取...

    delphi 开发经验技巧宝典源码06

    0089 实现直接插入法排序 61 第4章 函数应用 63 4.1 字符串处理函数 64 0090 使用Uppercase函数将小写字母转换为大写字母 64 0091 使用Lowercase函数将大写字母转换为小写字母 64 0092 使用Copy函数获取...

    net学习笔记及其他代码应用

    然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例273 使用内连接选择一个表与另一个表中行相关的所有行 9.14 外连接查询 实例274 LEFT OUTER JOIN查询 实例275 RIGHT OUTER JOIN查询 实例276 使用外连接进行多表联合查询 9.15 利用IN进行查询 实例277 ...

    Visual C++程序开发范例宝典(光盘) 第八部分

    实例273 使用内连接选择一个表与另一个表中行相关的所有行 9.14 外连接查询 实例274 LEFT OUTER JOIN查询 实例275 RIGHT OUTER JOIN查询 实例276 使用外连接进行多表联合查询 9.15 利用IN进行查询 实例277 ...

    Visual C++程序开发范例宝典(PDF扫描版).part3

     cc实例102 获取鼠标任意位置的颜色值   cc实例103 提取图片中的对象   cc实例104 手写数字识别   3.8 图像字体  cc 实例105 旋转的文字   cc实例106 当前系统字体列表   cc实例107 空心文字  ...

    Visual C++程序开发范例宝典(PDF扫描版).part2

     cc实例102 获取鼠标任意位置的颜色值   cc实例103 提取图片中的对象   cc实例104 手写数字识别   3.8 图像字体  cc 实例105 旋转的文字   cc实例106 当前系统字体列表   cc实例107 空心文字  ...

    Visual C++ 程序开发范例宝典 源码 光盘 part2

    cc实例102 获取鼠标任意位置的颜色值 cc实例103 提取图片中的对象 cc实例104 手写数字识别 3.8 图像字体 cc 实例105 旋转的文字 cc实例106 当前系统字体列表 cc实例107 空心文字 cc实例108 如何在...

Global site tag (gtag.js) - Google Analytics