我这么写单行可以删除,批量删除就出错.....帮忙看看改改...谢谢!!! Protected Sub btnupdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnupdate.Click
Dim i, j As Integer
i = 0
Dim deleteItem(1000) As String
For j = 0 To GridView1.Rows.Count - 1
Dim txtcount As TextBox = GridView1.Rows(j).FindControl("txtcount")
Dim chkbookid As CheckBox = GridView1.Rows(j).FindControl("chkbookid")
If chkbookid.Checked = True Then
deleteItem(i) = j
i = i + 1 End If
Response.Write("j=" & j & "<br>")
Response.Write("i=" & i & "<br>") mytb.Rows(j)(3) = txtcount.Text
mytb.Rows(j)(4) = mytb.Rows(j)(2) * mytb.Rows(j)(3)
Next
'mytb.AcceptChanges()
For j = 0 To i - 1
mytb.Rows(deleteItem(j)).Delete()
Next
Call Total()
GridView1.DataSource = New DataView(mytb)
GridView1.DataBind()
End Sub
Dim i, j As Integer
i = 0
Dim deleteItem(1000) As String
For j = 0 To GridView1.Rows.Count - 1
Dim txtcount As TextBox = GridView1.Rows(j).FindControl("txtcount")
Dim chkbookid As CheckBox = GridView1.Rows(j).FindControl("chkbookid")
If chkbookid.Checked = True Then
deleteItem(i) = j
i = i + 1 End If
Response.Write("j=" & j & "<br>")
Response.Write("i=" & i & "<br>") mytb.Rows(j)(3) = txtcount.Text
mytb.Rows(j)(4) = mytb.Rows(j)(2) * mytb.Rows(j)(3)
Next
'mytb.AcceptChanges()
For j = 0 To i - 1
mytb.Rows(deleteItem(j)).Delete()
Next
Call Total()
GridView1.DataSource = New DataView(mytb)
GridView1.DataBind()
End Sub
解决方案 »
- This application is currently offline. 这段话是什么意思?
- 求曲线寻点方法
- ajax Accordion控件
- gridview的dataSource问题?
- 字符解码
- 谁传一个asp.net做的WEBQQ
- 创建的ascx控件没有cs文件是怎么回事!!
- 使用nhibernate做asp.net的web程序出现问题,高手请指教
- datagrid点击单元格选中一行问题。急!急!急!急!急!急!急!急!急!急!急!急!
- 高手帮帮忙。。。
- ????????????????????????疯了,数据依赖问题!!!!!!!!!!!!!!!谁能帮我解决我永远记住他,决不食言。我真的没有分了!!!!!!!!!!!!!
- C#2.0 如何修改action的属性呢?
mytb.Rows(deleteItem(j)).Delete()
Next这句有点问题吧, 删除了一行,原来的行号就不同了哦。 每删除一条都要重新定位选中的数据。建议写个do循环,找到一条删除一条。
For j = 0 To i - 1
mytb.Rows(deleteItem(j)).Delete()
Next为什么用数组,推荐你用Dim list1 as new List(of String),可以动态添加。 For j=0 To list1.count-1
mytb.Rows(deleteItem(list1(j))).Delete()
Next
Protected Sub btnupdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnupdate.Click
Dim j As Integer
Dim deleteItem As new System.Collections.Generic.List(of String)
For j = 0 To GridView1.Rows.Count - 1
Dim txtcount As TextBox = GridView1.Rows(j).FindControl("txtcount")
Dim chkbookid As CheckBox = GridView1.Rows(j).FindControl("chkbookid")
If chkbookid.Checked = True Then
deleteItem.add(j)
End If mytb.Rows(j)(3) = txtcount.Text
mytb.Rows(j)(4) = mytb.Rows(j)(2) * mytb.Rows(j)(3)
Next
'mytb.AcceptChanges()
For j = 0 To deleteItem.count-1
mytb.Rows(deleteItem(deleteItem(j))).Delete()
Next
Call Total()
GridView1.DataSource = New DataView(mytb)
GridView1.DataBind()
End Sub
mytb.Rows(deleteItem(deleteItem(j))).Delete()mytb.Rows(deleteItem(j)).Delete()
--------------------------------
这样子不能删除了.......
什么原因啊?
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim bookid As String = Request.QueryString("id")
If Session("bookcart") Is Nothing Then
newTable()
Session("bookcart") = mytb
Else
mytb = Session("bookcart")
End If
If Not Page.IsPostBack Then
If (Not bookid = "") Then
Call AddToTable(bookid)
End If
Call Total()
GridView1.DataSource = New DataView(mytb)
GridView1.DataBind()
End If
End Sub
Sub Total()
Dim i As Integer
Dim booktotal As Integer = 0
Dim bookcount As Integer = 0
For i = 0 To mytb.Rows.Count - 1
booktotal = booktotal + mytb.Rows(i)(4)
bookcount = bookcount + mytb.Rows(i)(3)
Next
lbltatol.Text = " 总金额:" & booktotal
lblcount.Text = "商品总数量:" & bookcount
End Sub
Sub AddToTable(ByVal bookid As String)
Dim adp As OleDbDataAdapter
Dim ds As DataSet
Dim Sql As String
Sql = "select * from book where bookid=" & bookid
Dim db As New ConnDB
Dim conn As OleDbConnection = db.Getcn
adp = New OleDbDataAdapter(Sql, conn)
Dim dt As DataTable
ds = New DataSet()
adp.Fill(ds, "book")
dt = ds.Tables("book")
Dim dr As DataRow = mytb.NewRow()
dr(0) = dt.Rows(0)("bookid")
dr(1) = dt.Rows(0)("bookname")
dr(2) = dt.Rows(0)("price")
dr(3) = 1
dr(4) = dr(2) * dr(3)
mytb.Rows.Add(dr)
End Sub
Sub newTable()
mytb = New DataTable()
mytb.Columns.Add(New DataColumn("bookid", GetType(String)))
mytb.Columns.Add(New DataColumn("bookname", GetType(String)))
mytb.Columns.Add(New DataColumn("bookprice", GetType(System.Int32)))
mytb.Columns.Add(New DataColumn("bookcount", GetType(System.Int32)))
mytb.Columns.Add(New DataColumn("booktotal", GetType(System.Int32)))
End Sub
Protected Sub btnupdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnupdate.Click
Dim i, j As Integer
' i = 0
Dim deleteItem As New System.Collections.Generic.List(Of String) For j = 0 To GridView1.Rows.Count - 1
Dim txtcount As TextBox = GridView1.Rows(j).FindControl("txtcount")
Dim chkbookid As CheckBox = GridView1.Rows(j).FindControl("chkbookid")
If chkbookid.Checked = True Then
deleteItem.Add(j)
End If
mytb.Rows(j)(3) = txtcount.Text
mytb.Rows(j)(4) = mytb.Rows(j)(2) * mytb.Rows(j)(3)
Next
'mytb.AcceptChanges()
For j = 0 To deleteItem.Count - 1
mytb.Rows(deleteItem(j)).Delete()
Next
Call Total()
GridView1.DataSource = New DataView(mytb)
GridView1.DataBind()
End Sub
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="tableDelete.aspx.vb" Inherits="tableDelete" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無題のページ</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Table runat="server" ID="tbl">
<asp:TableRow ID ="row1">
<asp:TableCell>
1
</asp:TableCell>
</asp:TableRow>
<asp:TableRow ID="row2">
<asp:TableCell>
2
</asp:TableCell>
</asp:TableRow>
<asp:TableRow ID="row3">
<asp:TableCell>
3
</asp:TableCell>
</asp:TableRow>
<asp:TableRow ID="row4">
<asp:TableCell>
4
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</div>
</form>
</body>
</html>
后台Imports System.Collections.Generic
Partial Class tableDelete
Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim s As New List(Of Integer)
s.Add(2)
s.Add(3)
Dim j As Integer
For j = 0 To s.Count - 1
tbl.Rows.Remove(CType(tbl.FindControl("row" & s(j)), TableRow))
Next
End Sub
End Class
mytb.Rows(deleteItem(deleteItem(j))).Delete()
ss =deleteItem.count -1
Next
这样行不?