从代码隐藏中动态创建和访问RadioButtonLists

时间:2009-02-04 15:01:58

标签: vb.net dynamic radiobuttonlist

我的问题是:我有一个精简的default.aspx页面。除了元素之外,几乎所有功能都必须在aspx.vb中的代码隐藏中。

该程序从数据库中检索信息并将其与另一个表列表进行比较,两个列表的数量可能不同。

所以我需要将动态数量的RadioButtonLists“绑定”到asp:table元素控件,我需要为每个创建的RadioButtonList创建一个动态数量的ListItem。之后,我需要能够访问每个选定的值,以便决定数据库中的未来功能。

代码示例如下:

aspx文件:

<asp:table ID="table1" runat="server">

<小时/> aspx.vb文件(代码隐藏):

Sub createHtmlTables()

    For i = 0 To productIndex.Count - 1

        ''//create a RadioButtonList for each i
        Dim row As New TableRow
        Dim cell As New TableCell

        For k = 0 To productTypeAmountIndex.Count - 1

            ''//create a ListItem(radiobutton)
            ''//for each k and include it in the RadioButtonList

            ''//assign a value (for example name) of the product as
            ''//the ListItems ID to retreive it later

        Next

        ''//add the RadioButtonList to cell.controls etc
        Table1.Rows.Add(row)

    Next
End Sub

Sub addToDb()
    For i = 0 To productIndex.Count - 1
        ''//get the RadioButtonList for each i
        ''//and return the value of the selected radiobutton
        ''//within the list to a variable

    Next

End Sub

很抱歉,如果这很长而且令人困惑,但由于我甚至无法提出我的问题,我试图尽可能多地提供信息。基本上我只需要一个例子来说明如何以及使用哪些方法来完成所有工作。

更新

每个人都在告诉我,开始使用表格是一个错误,但我发现有些地方声称你不能像使用表格一样轻松地自定义数据网格。我想我会从头开始整个事情。

事情是UI应该尽可能地图形化,桌子我可以做各种整洁的事情,比如根据里面的信息给单元格着色等。

无论如何,谢谢,但不是我想要的,但我会尝试用datagrid / gridview重新制作这个东西,看看会发生什么。我可能需要几天时间才能学会使用它们并回到这里。

2 个答案:

答案 0 :(得分:0)

您可以通过gridview或datagrid或转发器等真正的服务器控件获得更好的运气,而不是使用表格。然后,您可以在控件上连接数据源属性。

对于所有动态控件,请记住每次执行回发时都必须重新创建它们。这可能听起来很奇怪,但诀窍是服务器的每个请求,包括回发,都使用页面类的不同实例。当该请求/回发完成时,销毁用于该请求的页面实例。唯一保持活动的是会话和缓存。

答案 1 :(得分:0)

这是我的.aspx代码。

data$age <- as.character(data$age)
data$age[which(data$age=="18-24")] <- "20"
data$age[which(data$age=="35-44")] <- "40"
data$age[which(data$age=="45-54")] <- "50"
data$age <- as.numeric(data$age)

这是我的代码背后的代码。 我添加了动态下拉列表。 在保存按钮单击时,我正在检索选定的值。

<asp:Table ID="Questions" runat="server">

</asp:Table>
<asp:Button ID="SaveButton" runat="server" Text="Save" />