0

我需要根据另一个选择创建多个 GridView。

我猜我只能在页面后面的代码上执行此操作。但是,我是否需要在 .aspx 页面中指定 ASP:GridView 控件?

以下是我的代码:

            if (dt.Rows.Count > 0)
        {
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                    sqlStatement = "select table_name, column_name, [Description], data_type from INFORMATION_SCHEMA.COLUMNS WHERE tableName = '" + dt.Rows[j][0].ToString()+ "'";

                command = new SqlCommand(sqlStatement, conn);
                SqlDataAdapter adapter = new SqlDataAdapter(command);
                DataSet ds = new DataSet();
                adapter.Fill(ds);

                GridView gv = new GridView();
                gv.DataSource = ds;
                Page.Controls.Add(gv); 
            }
            Page.DataBind(); 
        }

我尝试运行上面的代码,但不断收到错误消息:

Control 'ctl01' of type 'GridView' must be placed inside a form tag with runat=server. 
4

3 回答 3

0

您应该始终将控件插入 PlaceHolders

看一下这个:

http://www.developerfusion.com/code/3826/adding-controls-to-placeholders-dynamically/

于 2012-10-16T00:53:19.603 回答
0

检查您的表单标签是否包含 runat = "server" ?

于 2012-10-16T00:18:59.443 回答
0

找到了解决方法...我在 aspx 页面和后面的代码中创建了一个名为 Panel1 的 ASP.NET 面板,而不是Page放置 Panel1。

谢谢大家的帮助!

于 2012-10-16T01:03:44.237 回答