2014-04-23 60 views
0

嗨,我需要在asp.net设计这样的形象代码:中继器的单选按钮列表里面在asp.net

enter image description here

名单来自数据库和元素来自数据库了。

,但我需要将每箱:(1个清单 - 多元素)是分离radiobox 这样我就可以在盒子里面点击任何地方和检查无线电在它

我想做出一个ASP: RadioButtonList的主数据源(用于列表)

<asp:RadioButtonList ID="RadioButtonList1" runat="server"> 
       </asp:RadioButtonList> 

和每个无线电内作出元素的中继器在每个列表...怎么办呢? 如何在radiobuttonlist中添加中继器?

我想这个代码

<asp:RadioButtonList ID="radio" runat="server" DataSourceID="radio" DataTextField="name" DataValueField="id"> 
          <asp:HiddenField runat="server" ID="hidden" value='<%#Eval("id") %>'> 
          </asp:HiddenField> 
          <asp:Repeater runat="server" ID="repeater" DataSourceID="repeaterds"> 
           <ItemTemplate> 
            <%#Eval("name") %> 
           </ItemTemplate> 
          </asp:Repeater> 
          <asp:SqlDataSource ID="repeaterds" runat="server" ConnectionString="<%$ ConnectionStrings:samy_sarc %>" SelectCommand="select * from level where (team_id = @id)"> 
           <SelectParameters> 
           <asp:ControlParameter ControlID="hidden" Name="@id" PropertyName="Value" /> 
          </SelectParameters> 


          </asp:SqlDataSource> 
         </asp:RadioButtonList> 
         <asp:SqlDataSource ID="radiods" runat="server" ConnectionString="<%$ ConnectionStrings:samy_sarc %>" SelectCommand="select * from team"></asp:SqlDataSource> 

,但它不会工作,因为在RadioButtonList没有采取同级元素

+0

你不需要你的单选按钮列表中的中继器。您单选按钮列表中的元素将来自您的数据绑定。 –

+0

不明白吗??? 但可以肯定的是 sqldatasource1 ...是从数据库中获取“列表” sqldatasource2 ...是从数据库中获取每个列表的“元素” –

+0

您是否尝试过任何操作? –

回答

0

也许我误解你的问题,而无需使用中继器...

public class TData 
{ 
    public String TText { get; set; } 

    public UInt32 TValue { get; set; } 
} 

public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     List<TData> Data = new List<TData> 
     { 
      new TData{TText = "JSON", TValue = 0}, 
      new TData{TText = "C#", TValue = 1}, 
      new TData{TText = "JAVA", TValue = 2}, 
     }; 

     this.RadioButtonList1.DataTextField = "TText"; 
     this.RadioButtonList1.DataValueField = "TValue"; 
     this.RadioButtonList1.DataSource = Data; 
     this.RadioButtonList1.DataBind(); 
    } 
} 

好的,让我们来改进吧

asp.net页面

<asp:Repeater ID="Repeater1" runat="server"> 
     <ItemTemplate> 
      <asp:RadioButton runat="server" Text="<%# (Container.DataItem as Dummy.TData).TText %>" /> 
      <asp:Repeater runat="server" DataSource="<%# (Container.DataItem as Dummy.TData).TValue %>"> 
       <ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text="<%# (Container.DataItem as Dummy.TData1).TText %>"></asp:Label> 
       </ItemTemplate> 
      </asp:Repeater> 
     </ItemTemplate> 
    </asp:Repeater> 

和后面的代码:

public class TData1 
{ 
    public String TText { get; set; } 

    public String TValue { get; set; } 
} 

public class TData 
{ 
    public String TText { get; set; } 

    public List<TData1> TValue { get; set; } 
} 

protected void Page_Load(object sender, EventArgs e) 
    { 
     List<TData1> lst = new List<TData1> 
     { 
      new TData1 {TText = "JSON", TValue = "0"}, 
      new TData1 {TText = "C#", TValue = "1"}, 
      new TData1 {TText = "JAVA", TValue = "1"} 
     }; 

     List<TData> Data = new List<TData> 
     { 
      new TData{TText = "JSON", TValue = lst}, 
      new TData{TText = "C#", TValue = lst}, 
      new TData{TText = "JAVA", TValue = lst} 
     }; 

     this.Repeater1.DataSource = Data; 
     this.Repeater1.DataBind(); 
    } 

它做

enter image description here

+0

嗯,但有一个问题(json,c#,java)它不是静态的,它也来自sqldatasource –

+0

你误解了我想要的。 ..我需要像李的UL 像: 队1: - 萨米 - 插孔 队2: - 爱丽丝 - ASKA 和按选择球队的任何地方每个UL –

+0

您罐内的能力改善项目模板以适应你的输出风格 – TechStone