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

大家帮我看下这个循环有什么错误啊

 Button btn = (Button)sender;
        string str = btn.CommandName;
        foreach (GridViewRow i in GridView1.Rows)
        {
            if ((i.FindControl("btnInsert") as Button).ToString() != null)
            {
                cl.CCid = int.Parse(GridView1.DataKeys[i.RowIndex].Value.ToString());
                if (string.IsNullOrEmpty(str))
                {
                    Response.Redirect("DrawingIDAdd.aspx?id="+cl.CCid);
                }
                else
                {
                    SKK.Common.PageHandler.RegisterAlert(this,"此条记录已有图色编号");
                    return;
                }
            }
        } --------------------编程问答--------------------  if   (string.IsNullOrEmpty(str)) 
                                { 
                                        Response.Redirect("DrawingIDAdd.aspx?id="+cl.CCid); 
                                } 
这就是错误啊!
如果满足条件的话都转到另一个页面了,你还指望他能转回来执行剩余的代码? --------------------编程问答-------------------- (i.FindControl("btnInsert")   as   Button).ToString()   !=   null 这个判断肯定没有起作用了~~错了 --------------------编程问答-------------------- 我认为你的i.FindControl("btnInsert") 就没有找到。
放在数据绑定事件中,不用循环,他自己就知道一行一行的处理。  --------------------编程问答-------------------- 要我们猜什么 --------------------编程问答--------------------  if   ((i.FindControl("btnInsert")   as   Button).ToString()   !=   null) 
这个如果没有对象tostring会错的。  --------------------编程问答--------------------  if   ((i.FindControl("btnInsert")   as   Button).ToString()   !=   null) 
如果找不到button,tostring方易做图缺少对象的错误。

另,要我们猜什么? --------------------编程问答-------------------- Button b;
            LiteralControl ta;
            LiteralControl tr;
            LiteralControl td;            

            ta = new LiteralControl("<table >");
            this.Page.Controls[3].Controls.Add(ta);
            for (int i = 1; i < 8; i++)
            {
                tr = new LiteralControl("<tr>");
                this.Page.Controls[3].Controls.Add(tr);
                for (int j = 1; j < 10; j++)
                {
                    td = new LiteralControl("<td>");
                    this.Page.Controls[3].Controls.Add(td);

                    b = new Button();
                    b.Text = gy + i + "0" + j;
                    b.ID = gy + i + "0" + j;
                    b.Width = new Unit(40);
                    b.BackColor = System.Drawing.Color.Transparent;
                    b.Click += new EventHandler(b_Click);
                    this.Page.Controls[3].Controls.Add(b);

                }
                for (int k = 10; k < 25; k++)
                {
                    if (k == 13)
                    {
                        tr = new LiteralControl("<tr>");
                        this.Page.Controls[3].Controls.Add(tr);
                    }
                    td = new LiteralControl("<td>");
                    this.Page.Controls[3].Controls.Add(td);

                    b = new Button();
                    b.Text = gy + i + k;
                    b.ID = gy + i + k;
                    b.Width = new Unit(40);
                    b.BackColor = System.Drawing.Color.Transparent;
                    b.Click+=new EventHandler(b_Click);
                    this.Page.Controls[3].Controls.Add(b);
                }                
            }
        }
        catch (Exception ee)
        {
            Response.Write(ee.Message);
        }
    }

    void b_Click(object sender, EventArgs e)
    {
        for (int j = 0; j < Page.Controls[3].Controls.Count; j++)
        {
            if (Page.Controls[3].Controls[j] is Button)
            {
                if (sender.Equals(Page.Controls[3].Controls[j]))
                {                    
                    Session["fjmc"] = Page.Controls[3].Controls[j].ID;
                    Response.Redirect("fj.aspx");
                }
            }
        }
    }



我想是想实现这个一个功能吧? --------------------编程问答-------------------- 有点麻烦了。我写的<table><tr><td>都是排版的。你看b那几行就行了。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,