根据DB中的值创建控件

时间:2013-08-28 15:03:17

标签: asp.net vb.net

我需要在我的ASP.NET应用程序中创建一个动态构建的页面(使用VB)。该页面收集报告的参数信息。

报告信息(如名称,存储过程和所需参数)位于数据库表中。

在表格中我有一个字段'control_type',我希望我可以使用它作为我需要创建的控件类型来收集所选报表的相关参数值。 所以,如果我选择Report01,我会从Report01的数据库中获取行,并且该报告行的参数数据告诉我需要将一个整数值收集到一个名为i_company_id的参数中,并创建控件以选择此值表单(on我动态创建的参数页面)说'DropDownList'。

如果我从数据库中获取行并将该字段值放入变量中,那么我可以执行类似

的操作
dim ddl as New VaraibleName

然后我可以正常填充列表然后

panel.controls.add(ddl)

关键位能够创建一个控件,其中要创建的控件类型是变量或其他动态定义的方式。

1 个答案:

答案 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(将以任何方式工作)。