也谈"未将对象引用设置到对象的实例"

        昨天搞了个排序, 在DataGrid里放了两个asp:ButtonColumn, 写上CommandName在_ItemCommand写好之后, 第一次运行, 按钮的命令事件可以被执行, 但翻页时缺出现错误 "未将对象引用设置到对象的实例"   
        Label lblcid = (Label)e.Item.FindControl("CID");
        int id = int.Parse(lblcid.Text);
通常出现此错误多由于FindControl后的ID不存在造成,我的分明是存在的阿 emsad.gif, 而且第一次运行都可以通过的;为什么翻页时就报错呢?观察代码,一遍,二遍,.. 似乎没有什么问题呀!--经过反复周折后,问题最后终于被找出来啦!原来我在_ItemCommand事件中先写的Label lblcid = (Label)e.Item.FindControl("CID");
        int id = int.Parse(lblcid.Text);
而后才switch(e.CommandName){...},这样就会产生错误喽.我把lblcid = (Label)e.Item.FindControl("CID"); id = int.Parse(lblcid.Text);写进switch里,终于可以正常翻页啦! emsmile.gif e.Item.FindControl 在ItemCommand里还是在e.CommandName下用的好, 这样就安全啦.至此,这个Bug宣告解除,总结一下:我们做程序的时候,不能想当然阿, 要不然真的有莫名其妙的错误哦..


转载于:https://www.cnblogs.com/guihua630/archive/2005/11/04/269065.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值