首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用来自RadioButtonList的值创建动态DataBase

如何使用来自RadioButtonList的值创建动态DataBase
EN

Stack Overflow用户
提问于 2013-12-30 04:22:54
回答 3查看 12.2K关注 0票数 0

我的表结构

代码语言:javascript
复制
Group | Values
------  ------
Group1   Option 1
Group1   Option 2
Group1   Option 3
Group1   Option 4

Group2   Option 1
Group2   Option 2
Group2   Option 3
Group2   Option 4

现在,使用上面的表值,我需要创建动态无线电按钮列表控件,如下所示

集团1

  • 备选案文1
  • 选项2
  • 选项3
  • 备选案文4

集团2

  • 备选案文1
  • 选项2
  • 选项3
  • 备选案文4

有可能这样做吗?

无线电按钮列表的数目也是dynamic。它可能有任意数量的无线电按钮列表。我需要给unique ID for each radiobuttonlist并从所有的无线电按钮列表中得到值。

这类似于在线考试,但它是,而不是相同的,为了让您更好地理解我刚才提到的在线考试。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-30 05:05:37

代码语言:javascript
复制
dtgrp = db.Getval(select distinct Group from table1)
dtval = db.GetVal(select Values from table1)

 For i = 0 To dtgrp.Columns.Count - 1
 Dim rdl As New RadioButtonList
 rdl.ID = dtgrp.Columns(i).ToString()
 rdl.Text = dtgrp.Columns(i).ToString() & vbCrLf
 For j = 0 To dtval.Rows.Count - 1
 If Not String.IsNullOrEmpty(dtval.Rows(j)(i).ToString()) Then
 rdl.Items.Add(dtval.Rows(j)(i).ToString())
 End If
 Next
 pnlgrp.Controls.Add(rdl)
 Next
票数 1
EN

Stack Overflow用户

发布于 2013-12-30 05:44:13

THis会给出你的答案:

代码语言:javascript
复制
 <form id="form1" runat="server">
    <div>
        <asp:PlaceHolder runat="server" ID="PlaceHolder1" />
        <asp:Button runat="server" ID="Button1" OnClick="Button1_Click" Text="Submit" />
        <asp:Label runat="server" ID="Label1" />
    </div>
    </form>

 protected void Button1_Click(object sender, EventArgs e)
        {
            LoadControls();
        }
        private void LoadControls()
        {


            string conString = ConfigurationManager.ConnectionStrings["aspnetdbConnectionString"].ConnectionString;
            SqlConnection con = new SqlConnection(conString);
            con.Open();
            SqlCommand cmd = new SqlCommand("select * from groupInfo order by group1", con);
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);
            string strGroupName = string.Empty;
            DataTable dt = ds.Tables[0];
            int flag = 0;

            RadioButtonList rblGroup = new RadioButtonList();
            Label lblGroup;
            for (int i = 0; i < dt.Rows.Count; i++)
            {

                while (strGroupName == Convert.ToString(dt.Rows[i][0]))
                {
                    i++;
                    goto Outer;
                }

                strGroupName = Convert.ToString(dt.Rows[i][0]);
                rblGroup = new RadioButtonList();
                lblGroup = new Label();
                lblGroup.Text = strGroupName;
                for (int j = 0; j < dt.Rows.Count; j++)
                {
                    if (strGroupName == Convert.ToString(dt.Rows[j][0]))
                    {
                        ListItem lblItem = new ListItem(Convert.ToString(dt.Rows[j][1]), Convert.ToString(dt.Rows[j][1]));
                        rblGroup.Items.Add(lblItem);
                    }
                }
                PlaceHolder1.Controls.Add(lblGroup);
                PlaceHolder1.Controls.Add(rblGroup);

            Outer:
                continue;
            }
        }
票数 1
EN

Stack Overflow用户

发布于 2013-12-30 05:13:12

基本上,如果动态创建控件,则需要在页面后面的每个帖子中重新加载这些控件(具有相同的id)。

否则,它们将变为null,您将无法访问它们。

这是一个样本。它动态加载RadioButtonList控件,并在单击按钮时显示所选值。

代码语言:javascript
复制
<asp:PlaceHolder runat="server" ID="PlaceHolder1"/>
<asp:Button runat="server" ID="Button1" OnClick="Button1_Click" Text="Submit" />
<asp:Label runat="server" ID="Label1"/>

protected void Page_Load(object sender, EventArgs e)
{
    LoadControls();
}

protected void Button1_Click(object sender, EventArgs e)
{
    var radioButtonList = PlaceHolder1.FindControl("1") as RadioButtonList;
    Label1.Text = radioButtonList.SelectedValue;
}

private void LoadControls()
{
    var tmpRBL = new RadioButtonList();
    tmpRBL.ID = "1";

    for (int i = 1; i <= 5; i++)
    {
        var tmpItem = new ListItem(i.ToString(), i.ToString());
        tmpRBL.Items.Add(tmpItem);
    }

    PlaceHolder1.Controls.Add(tmpRBL);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20833312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档