代码奉上:(下面代码有注释那里写有问题的````)
 protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
             this.wf_selYangYe();
             string arg_msg = "";
             this.wf_selContent(ref arg_msg);
        }
    }private bool wf_selYangYe()
    {
        bool rslt = true;
        string arg_msg = "";        string sql = "";
        DataSet ds = new DataSet();
        try
        {
            sql = "select * from YangYe";
            ds = cs_con.Select(sql, null, ref arg_msg);
            DataView dv = new DataView(ds.Tables[0]);            foreach (DataRowView Row in dv)
            {
                TreeNode node = new TreeNode();
                node.Text = Row["Name"].ToString().Trim();
                node.Value = Row["YangYeID"].ToString().Trim();                this.tv_hangye.Nodes.Add(node);
                node.Expanded = false;
            }
            tv_hangye.NodeStyle.Font.Underline = false;        }
        catch (Exception ex_wf_seltRight)
        {
            rslt = false;
            arg_msg = ex_wf_seltRight.Message;
        }
        return rslt;
    }private bool wf_selContent(ref string arg_msg)
    {
        bool rslt = true;
        string sql = "";
        DataTable dt = new DataTable();
        try
        {
            if (Session["YangYeID"]==null)
            {
                for(int i=0;i<this.dv_yangye.Rows.Count;i++)
                {
                 //调试到这个括号这里就直接走到return去了,也不报错,也不进这个循环
                 //这是为什么呀?我只是想当Session里没值的时候,让DetailView里的行显示为空。
                 //请高手指点!!!!(急~~)                    ((TextBox)this.dv_yangye.Rows[i].FindControl("tb_code")).Text = ""; 
                    ((TextBox)this.dv_yangye.Rows[i].FindControl("tb_name")).Text = "";
                }     
            }
            else
            {
                sql = "select * from YangYe where YangYeID=" + Convert.ToInt32(Session["YangYeID"].ToString());
                dt = cs_con.Select(sql, null, ref arg_msg).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    this.dv_yangye.DataSource = dt;
                    this.dv_yangye.DataBind();
                    goto ext_wf_selContent;
                }
                else
                {
                    rslt = false;
                    goto ext_wf_selContent;
                }
            }   
           
        }
        catch (Exception ex_wf_selContent)
        {
            rslt = false;
            arg_msg = ex_wf_selContent.Message;
            Response.Write(arg_msg);
        }
    ext_wf_selContent:
        return rslt;
        
    }

解决方案 »

  1.   

    for(int i=0;i <this.dv_yangye.Rows.Count;i++)
    去掉this看看
      

  2.   

    大哥啦,这个this是没有影响滴```纯属代码习惯
      

  3.   

    if (Session["YangYeID"]==null) 
                { 
                    for(int i=0;i <this.dv_yangye.Rows.Count;i++) 
                    { 
                    //这里的dv_yangye 之前已经帮定了?                    ((TextBox)this.dv_yangye.Rows[i].FindControl("tb_code")).Text = ""; 
                        ((TextBox)this.dv_yangye.Rows[i].FindControl("tb_name")).Text = ""; 
                    }    
                } 
                else 
                { 
                    sql = "select * from YangYe where YangYeID=" + Convert.ToInt32(Session["YangYeID"].ToString()); 
                    dt = cs_con.Select(sql, null, ref arg_msg).Tables[0]; 
                    if (dt.Rows.Count > 0) 
                    { 
                        this.dv_yangye.DataSource = dt; 
                        this.dv_yangye.DataBind(); 
                        goto ext_wf_selContent; 
                    } 
                    else 
                    { 
                        rslt = false; 
                        goto ext_wf_selContent; 
                    } 
                }  
      

  4.   

    页面初始化的时候有绑定,但是页面刚打开的时候是空的嘛~~
    那到底该怎么完成我想要的效果哇?
    我改了一下,但是还是有错
    if (Session["YangYeID"]==null) 
                { 
                    if(this.dv_yangye.Rows.Count==0)
                    {
                          //这里应该怎么给里面的行赋值啊?
                    }
         
                } 
                
      

  5.   

    你的代码是在
    else 
                { 
                    sql = "select * from YangYe where YangYeID=" + Convert.ToInt32(Session["YangYeID"].ToString()); 
                    dt = cs_con.Select(sql, null, ref arg_msg).Tables[0]; 
                    if (dt.Rows.Count > 0) 
                    { 
                        this.dv_yangye.DataSource = dt; 
                        this.dv_yangye.DataBind(); 这里绑定 dv_yangye 的 假如这种情况 if (Session["YangYeID"]==null) 成立,而且,你也是第一次打开页面那 dv_yangye 当然无任何行,既然无任何行,其中的textbox又怎么能找得到呢?
      

  6.   

    大虾们,帮我看看,急,急,急
    http://topic.csdn.net/u/20091128/11/ea8b0fc5-3d2b-463a-99df-497d0ec9754a.html