我需要在我的ASP.NET应用程序中创建一个动态构建的页面(使用VB)。该页面收集报告的参数信息。
报告信息(如名称,存储过程和所需参数)位于数据库表中。
在表格中我有一个字段'control_type',我希望我可以使用它作为我需要创建的控件类型来收集所选报表的相关参数值。 所以,如果我选择Report01,我会从Report01的数据库中获取行,并且该报告行的参数数据告诉我需要将一个整数值收集到一个名为i_company_id的参数中,并创建控件以选择此值表单(on我动态创建的参数页面)说'DropDownList'。
如果我从数据库中获取行并将该字段值放入变量中,那么我可以执行类似
的操作dim ddl as New VaraibleName
然后我可以正常填充列表然后
panel.controls.add(ddl)
关键位能够创建一个控件,其中要创建的控件类型是变量或其他动态定义的方式。
答案 0 :(得分:0)
我了解以下解决方案可提供您想要的内容:
Private Function createVariable(inputName As String) As Object
Dim outVariable As Object = New Object
If (inputName = "DropDownList") Then
Dim targetVariable As DropDownList = New DropDownList()
With targetVariable
'You might change here its properties (passed via Object array for example)
End With
outVariable = targetVariable
End If
'Add as many conditions as variables you are expecting
Return outVariable
End Function
通过执行以下操作来调用它:
Dim ddl As Object = createVariable("VariableName")
panel.Controls.Add(ddl)
如果您计划仅使用Controls
使用此代码,则可以将Object
替换为Control
(将以任何方式工作)。