1、界面
<td align="center" colspan="3"> <asp:Button ID="Button1" runat="server" Text="删除选中" />
<asp:GridView ID="GridView1" CaptionAlign="Bottom" GridLines="None" onrowdeleting="GridView1_RowDeleting" CssClass ="table1"
AutoGenerateColumns="False" runat="server" DataSourceID="SqlDataSource1" Height="100%" Width="100%" AllowPaging="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" OnCheckedChanged="GridView1_CheckBox1_CheckedChanged"/>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="Checkbox2" runat="server" AutoPostBack="true"/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="autoId" HeaderText="ID" SortExpression="autoId" />
<asp:BoundField DataField="houseid" HeaderText="网关" SortExpression="houseid" />
<asp:BoundField DataField="nodeid" HeaderText="节点" SortExpression="nodeid" />
<asp:BoundField DataField="temperature1" HeaderText="第一层" SortExpression="temperature1" />
<asp:BoundField DataField="temperature2" HeaderText="第二层" SortExpression="temperature2" />
<asp:BoundField DataField="temperature3" HeaderText="第三层" SortExpression="temperature3" />
<asp:BoundField DataField="temperature4" HeaderText="第四层" SortExpression="temperature4" />
<asp:BoundField DataField="createDate" HeaderText="日期" SortExpression="createDate" />
<asp:BoundField DataField="createTime" HeaderText="时间" SortExpression="createTime" />
<asp:TemplateField HeaderText="删除 " ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Delete" Text="删除" OnClientClick="return confirm('你确定要删除吗?')"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
2、程序
'全选所有数据
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sql As String = "delete from temperature where "
Dim cal As String = ""
Dim gv As GridViewRow
Dim i As Integer = 0
For Each gv In GridView1.Rows
Dim chk As CheckBox = gv.FindControl("Checkbox2")
If chk.Checked = True Then
cal = cal & "autoId=" & GridView1.Rows(i).Cells(1).Text & " or "
End If
i = i + 1
Next
If Not "".Equals(cal) And cal <> "" Then
sql = sql & cal.Substring(0, cal.Length - 6)
Try
Me.SqlDataSource1.DeleteCommand = sql
Me.SqlDataSource1.Delete()
GridView1.DataBind()
Response.Write("<script language=javascript>alert('删除成功!')</script>")
Catch ex As Exception
Response.Write("<script language=javascript>alert('删除失败!')</script>")
End Try
Else
Response.Write("<script language=javascript>alert('请选择需要删除的数据!')</script>")
End If
End Sub
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs)
Dim id As Integer = Me.GridView1.Rows(e.RowIndex).Cells(1).Text
Try
Me.SqlDataSource1.DeleteCommand = "delete from temperature where autoId=" & id
Me.SqlDataSource1.Delete()
GridView1.DataBind()
Response.Write("<script language=javascript>alert('删除成功!')</script>")
Catch ex As Exception
Throw ex
Response.Write("<script language=javascript>alert('删除失败!')</script>")
End Try
End Sub
Protected Sub GridView1_CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim gv As GridViewRow
Dim cb As CheckBox
cb = sender
If cb.Checked = True Then
For Each gv In GridView1.Rows
Dim chk As CheckBox = gv.FindControl("CheckBox2")
chk.Checked = True
Next
Else
For Each gv In GridView1.Rows
Dim chk As CheckBox = gv.FindControl("CheckBox2")
chk.Checked = False
Next
End If
End Sub
3、难点
一、checkbox全选功能。
如果使用html<input type="checkbox" name="c" /> 可以使用js
如果界面使用<asp:CheckBox ID="Checkbox2" runat="server" AutoPostBack="true"/>,则必须在程序里面加。必须设置AutoPostBack=true
二、怎么获取GridView1里选择的值
Dim gv As GridViewRow
Dim cb As CheckBox
For Each gv In GridView1.Rows
Dim chk As CheckBox = gv.FindControl("Checkbox2")
If chk.Checked = True Then
cal = cal & "autoId=" & GridView1.Rows(i).Cells(1).Text & " or "
End If
i = i + 1
Next