string num = string.Empty;
string strNow = "select * from TestPointInfo where EqName = '" + lblDjName.Text.Trim() + "'";
            DataTable dt2 = NJCHECDataAccess.GetDataset(strNow).Tables[0];
            if (dt2.Rows.Count > 0)
            {
                num = dt2.Rows[0]["num"].ToString();
            }
            for (int i = 0; i < Convert.ToInt32(num); i++)
            {
                System.Web.UI.WebControls.Button myButton = new System.Web.UI.WebControls.Button();
                //myButton.Text = 基本数据DataSet3.Tables[0].Rows[i][0].ToString();  
                myButton.Text = "123";
                this.Panel4.Controls.Add(myButton);
            }我页面上就丢了一个pane,不知道可不可以,上面代码生成不成功

解决方案 »

  1.   

    貌似还有一句吧
    Panel4 panel = new Panel4();
    this.Controls.Add(panel);  //就是这一句
      

  2.   

    是不是属性没写全,id runat,或者你的panel太小还是被什么挡着了
      

  3.   

    断点检查下num的值是否大于0
    不然代码看起来没问题啊。
      

  4.   


    有值的,为2, 页面上 pane 如下:
    <asp:Panel ID="Panel4" runat="server" Width="500px" Height="200px" CssClass="notePopup" Style="display: none">
                    
                    </asp:Panel>
      

  5.   

    没问题啊
        <asp:Panel ID="Panel1" runat="server">
        </asp:Panel>
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />    protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 2; i++)
            {
                Button btn = new Button();
                btn.Text = i.ToString();
                Panel1.Controls.Add(btn);
            }
        }