Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Page_Load()中动态创建控件_C#_Asp.net_Events_Runtime_Controls - Fatal编程技术网

C# 在Page_Load()中动态创建控件

C# 在Page_Load()中动态创建控件,c#,asp.net,events,runtime,controls,C#,Asp.net,Events,Runtime,Controls,我有一个关于在ASP.NET 4.0中运行时创建控件的问题。我正在构建一个应用程序,在admin.aspx页面中,我有多个控件(DropDownLists),它们是使用Sql数据库中的值动态创建的。 我知道要为动态创建的控件触发事件,我必须在Page\u Load()或Page\u Init()中创建此控件 我的项目有一个母版页,其中我有一个1秒的计时器,用来更新时钟。此计时器事件调用my admin.aspxPage\u Load()函数,因此我创建动态控件的方法每1秒调用一次-每1秒连接一次

我有一个关于在ASP.NET 4.0中运行时创建控件的问题。我正在构建一个应用程序,在admin.aspx页面中,我有多个控件(DropDownLists),它们是使用Sql数据库中的值动态创建的。 我知道要为动态创建的控件触发事件,我必须在
Page\u Load()
Page\u Init()
中创建此控件

我的项目有一个母版页,其中我有一个1秒的计时器,用来更新时钟。此计时器事件调用my admin.aspx
Page\u Load()
函数,因此我创建动态控件的方法每1秒调用一次-每1秒连接一次数据库,请查看下面的代码

这样做是个好习惯?你能提出一些想法吗

受保护的无效页面加载(对象发送方,事件参数e)
{
_SinopticBackgroundColor=ConfigurationManager.AppSettings[“SinopticBackgroundColor”];
panelContent.Style.Add(“背景色”,\u SinopticBackgroundColor);
控件c=导致回发的GetControlThathaccusedPostback(此);
如果(c!=null)
{
如果(c.ID.Equals(“btnManageCategory”))
hfPageManage.Value=“类别”;
else if(c.ID.Equals(“btnManageDevices”))
hfPageManage.Value=“设备”;
}
if(hfPageManage.Value.Equals(“类别”))
{
cbTreeViewGroup.Visible=false;
UpdateSinopticCategoryManager(TreeView.SelectedNode);//这是从数据库加载控件的函数。。
}
else if(hfPageManage.Value.Equals(“设备”))
{
cbTreeViewGroup.Visible=true;
}
其他的
{
cbTreeViewGroup.Visible=false;
}
如果(!Page.IsPostBack)
{
LoadFunctions();//将一些值从数据库加载到数据表中
}
其他的
{
}
}
下面是创建控件的函数

private void UpdateSinopticCategoryManager(TreeNode节点=null)
{
if(node==null)
返回;
DataTable CategoridT=null;
使用(var connection=newsqlconnection(Database.ConnectionString))
{
使用(var command=connection.CreateCommand())
{
command.CommandText=“从类别中选择*,其中CategoryID=@CategoryID”;
command.Parameters.Add(“CategoryID”,node.Value);
SqlDataAdapter ad=新SqlDataAdapter(命令);
数据集ds=新数据集(“类别属性”);
connection.Open();
ad.Fill(ds);
//验证日期
如果(ds.Tables.Count 0)
{
DropDownList list=新的DropDownList();
列表宽度=200;
list.Items.AddRange(GetOutputFunctions());
list.BorderColor=Color.Goldenrod;
单元格.控件.添加(列表);
}
其他的
{
标签=新标签();
label.Text=“OUTPUT”+i.ToString();
标签。样式。添加(“字体大小”、“粗体”);
单元格.控件.添加(标签);
}
行.单元格.添加(单元格);
}
table.Rows.Add(行);
}
//将表格添加到面板
panelContent.Controls.Add(表);
}

是这样的:
DropDownList categList=newdropdownlist()

这可能在codereview中得到更快、更有效的回答

这可能在codereview中得到更快、更有效的回答