日期:2014-05-19  浏览次数:20436 次

vs2005中FindControl的问题
我在vs2005中使用了一个GridView其中有一模板列中用了Label

我执行如下

        protected   void   gvHotels_RowCommand(object   sender,   GridViewCommandEventArgs   e)
        {
                if   (e.CommandName.Equals( "ViewHotelInfo "))
                {
                        Label   hotelCode   =   (Label)gvHotels.FindControl( "lblCnName ");

                        string   url   =   string.Format( "hotelInfo.aspx?hotelCode={0} ",   hotelCode.Text.ToString());
                        Response.Redirect(url);

                }

        }

但在这儿报错:未将对象引用设置到对象的实例,为什么找不到labCnName控件,我已加了呀.不知为什么?



------解决方案--------------------
你不能直接gvHotels.FindControl这样找。
要到某个单元格找
gvHotels.Rows[1].Cells[1].FindControl();
------解决方案--------------------
http://community.csdn.net/Expert/topic/5441/5441316.xml?temp=.2392237
------解决方案--------------------
或者
int index = Convert.ToInt32(e.CommandArgument);

GridViewRow row = GridView1.Rows[Convert.ToInt32 (e.CommandArgument)];

row.FindControl()......
------解决方案--------------------
为为什么不把html代码也帖出来呢!!