asp.net(vb)获取GridView中的CheckBox出错误
都在前台代码:<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQLClient" %>
<html >
<head id="Head1" runat="server">
<title>仓库类型删除</title>
<link rel="stylesheet" type="text/css" href="main.css" />
<link rel="stylesheet" type="text/css" href="a.css" />
<script language="VB" runat="server">
Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
If Not Page.IsPostBack Then
Call BindData()
message.Text = "友情提示:删除数据时请注意!!!"
'启动页面时调用数据绑定子程序
End If
End Sub
Sub gvStorageLis_Page(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvStorageList.PageIndexChanging
gvStorageList.PageIndex = e.NewPageIndex
BindData() '重新绑定GridView数据的函数
End Sub
Sub BindData()
Dim conn As New SqlConnection(ConfigurationSettings.AppSettings("StrConnection")) '建立Connection对象
Dim cmd As New SqlCommand("select * from cklxb", conn) '建立Command对象
Dim adp As New SqlDataAdapter(cmd) '建立DataAdapter对象
Dim ds As New DataSet() '建立DataSet对象
adp.Fill(ds, "仓库类型数据") '填充DataSet
gvStorageList.DataSource = ds.Tables("仓库类型数据").DefaultView '指定数据源
gvStorageList.DataBind() '执行绑定
End Sub
Sub Return_Click(ByVal sender As Object, ByVal e As EventArgs)
Response.Redirect("StorageList.aspx")
End Sub
Sub btnDel_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim flag As Boolean
Dim cbox As CheckBox
Dim i As Integer
Dim chkCount As Integer = 0
For i = 0 To gvStorageList.Rows.Count - 1
cbox = CType(gvStorageList.Rows(i).FindControl("ckList"), CheckBox)
flag = cbox.Checked
If flag = True Then
message.Text = "至少选择一条记录sdfsdf删除!"
End If
Next
End Sub
</script>
</head>
<body runat="server">
<center>
<form id="form1" runat="server">
<div class="webs">
<div class="lxscimgtop">
</div>
<div class="imgtopr">
</div>
<div class="ptqqbar">
<div class="zjlx">
<table border="0" cellpadding="0" cellspacing="0">
<tr><td height="40" class="TAtd" colspan="2"> </td></tr>
<tr class="TAhead" height="40" width="500" align="center"><td colspan="2" class="TAhead" width="600" align="center">仓库类型删除</td></tr>
<tr align="center"><td align="center"class="TAtd">
<asp:GridView ID="gvStorageList" runat="server" AllowPaging="true" AutoGenerateColumns="False" DataKeyNames="lxID "
PageSize="10" Width="95%" CssClass="Grid" OnPageIndexChanging="gvStorageLis_Page" >
<FooterStyle HorizontalAlign="Center" ></FooterStyle>
<HeaderStyle CssClass="Grid_Head"></HeaderStyle> <Columns>
<asp:TemplateField HeaderText="选择">
<ItemTemplate>
<asp:CheckBox ID="chkSel" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="类型编号" DataField="lxID" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="类型名称" DataField="lxmc" ItemStyle-HorizontalAlign="Center"/>
<asp:BoundField HeaderText="类型备注" DataField="lxbz" ItemStyle-HorizontalAlign="Center" />
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<AlternatingRowStyle BackColor="#F7F7F7" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
</asp:GridView>
</td></tr>
<tr align="center"class="TAtd"><td align="right" class="TAtd"> </td></tr>
<tr align="center"class="TAtd"><td align="right" class="TAtd">
<asp:button id="btnDel" runat="server" Text="删除" CssClass="button_1" OnClick="btnDel_Click"></asp:button>
<asp:button id="RET" runat="server" Text="返回" CssClass="button_1" OnClick="Return_Click"/> </td></tr>
<tr><td colspan="2" height="40" class="TAtd" align="center"> <span runat ="server" style=" color:Red;"><Asp:Label id="message" Runat="server" /></span></td></tr>
</table>
</div>
</div>
</div>
</form>
</center>
</body>
</html>
错误提示:
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 37: For i = 0 To gvStorageList.Rows.Count - 1
行 38: cbox = CType(gvStorageList.Rows(i).FindControl("ckList"), CheckBox)
行 39: flag = cbox.Checked
行 40: If flag = True Then
行 41: message.Text = "至少选择一条记录sdfsdf删除!"
--------------------编程问答-------------------- 未将对象引用到实例。。。
你监视下,可能有哪个地方的值为null --------------------编程问答-------------------- 行 38: cbox = CType(gvStorageList.Rows(i).FindControl("ckList"), CheckBox)
改为:
行 38: cbox = CType(gvStorageList.Rows(i).Cells(j).FindControl("ckList"), CheckBox)
--------------------编程问答-------------------- 不行啊 j没有定义 我想获取那是否被选中 Cells(0).就好了 但是 还不行啊 这是为什么啊 --------------------编程问答-------------------- CType(gvStorageList.Rows(i).Cells(0).FindControl("ckList"), CheckBox)这句获取不到值
补充:.NET技术 , ASP.NET