当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,