在ASP.NET中在listview中的div中添加动态radiobutonlist

时间:2017-04-02 09:47:46

标签: c# css asp.net listview webforms

我有一个列表视图,其中包含行中的div。所有div都有自己的控件工作。一个div包含radiobuttonlist,它从代码隐藏中获取数据源。数据已填充,但无线电设备列表在相关分区之外运送。

任何帮助将不胜感激。

struct node* findmin(struct node* t) {
    if(t==NULL) {
        return NULL;
    } else if(t->left) {
        findmin(t->left);
    } else
        return t; 
}

1 个答案:

答案 0 :(得分:0)

这是一个非常人为的例子,但也可以对单选按钮列表进行数据绑定。以下是一个例子;它确实相当做作,但它确实有效。

首先,代码隐藏(包括我如何构建列表)。 getRandomStringgetRandomListOfStrings的详细信息并不重要 - 基本上,我只是生成随机数据来填充前端。显然,您希望将此替换为您的实际数据源。

private class Temp
    {
        public string MainName { get; set; }

        // This is probably the key point here - I create a property to
        // hold data to bind my radio buttons to
        public List<string> RadioButtonOptions { get; set; }
    }

    private string getRandomString(Random r)
    {
        var sb = new StringBuilder();

        int length = r.Next(3, 10);

        for (int i = 0; i < length; i++)
        {
            int chr = r.Next(0, 60);
            char result = (char)(33 + chr);

            sb.Append(result);
        }

        return sb.ToString();
    }

    private List<string> getRandomListOfStrings(Random r)
    {
        int listLength = r.Next(3, 6);

        var list = new List<string>();

        for (int i = 0; i < listLength; i++)
        {
            list.Add(getRandomString(r));
        }

        return list;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        Random r = new Random();

        var list = new List<Temp>
        {
            new Temp
            {
                MainName = getRandomString(r),
                RadioButtonOptions = getRandomListOfStrings(r)
            },
            new Temp
            {
                MainName = getRandomString(r),
                RadioButtonOptions = getRandomListOfStrings(r)
            },
            new Temp
            {
                MainName = getRandomString(r),
                RadioButtonOptions = getRandomListOfStrings(r)
            },
            new Temp
            {
                MainName = getRandomString(r),
                RadioButtonOptions = getRandomListOfStrings(r)
            },
            new Temp
            {
                MainName = getRandomString(r),
                RadioButtonOptions = getRandomListOfStrings(r)
            },
            new Temp
            {
                MainName = getRandomString(r),
                RadioButtonOptions = getRandomListOfStrings(r)
            },
            new Temp
            {
                MainName = getRandomString(r),
                RadioButtonOptions = getRandomListOfStrings(r)
            }
        };

        mainListView.DataSource = list;
        mainListView.DataBind();

前端代码:

<asp:ListView ID="mainListView" runat="server">
    <ItemTemplate>
        <asp:Label runat="server" Text='<%# Eval("MainName") %>' /><br />
        <asp:RadioButtonList runat="server" DataSource='<%# Eval("RadioButtonOptions") %>'/><br />
        <hr />
    </ItemTemplate>
</asp:ListView>

单选按钮的HTML如下所示:

<tr>
    <td><input id="mainListView_ctl01_1_0_1" type="radio" name="mainListView$ctrl1$ctl01" value="6U(" /><label for="mainListView_ctl01_1_0_1">6U(</label></td>
</tr>

前端看起来像这样:

enter image description here