当前位置:编程学习 > C#/ASP.NET >>

DetailsView里面的RadioButtonList

DetailsView绑定数据以后生成的是表格:
试题  字段1的内容
A  A字段的内容
B  B字段的内容
C  C字段的内容
D  D字段的内容

现在字段1是试题,2、3、4、5分别是A、B、C、D的选项,怎么样能使DetailsView中字段2、3、4、5前面加上一个单选按钮呢?
或者说绑定字段1的内容,然后插入一个RadioButtonList控件,怎么样使它绑定相应的数据呢?
万分感谢! --------------------编程问答-------------------- --------------------编程问答-------------------- 你的选项是用什么分隔?
如果有一定的规则的话,就直接在页面写:

<% string[] option = content.split(','); %>
   <% foreach(string s in options){ %>
       <input type="radio" name="aaa" value="<%=s%>" />
   <% } %>

--------------------编程问答--------------------
引用 2 楼 staywithc 的回复:
你的选项是用什么分隔?
如果有一定的规则的话,就直接在页面写:

HTML code

<% string[] option = content.split(','); %>
   <% foreach(string s in options){ %>
       <input type="radio" name="aaa" value="<%=s%>" />
   <% } %……

这些代码写在哪儿呢?

    <Fields>
        <asp:BoundField DataField="STBT" SortExpression="STBT" />
        <asp:BoundField DataField="A" SortExpression="A" />
        <asp:BoundField DataField="B" SortExpression="B" />
        <asp:BoundField DataField="C" SortExpression="C" />
        <asp:BoundField DataField="D" SortExpression="D" />
    </Fields>

--------------------编程问答-------------------- DetailsView是表格形式,要在不同的表格行插入一个RadioButtonList控件是不行的,
可改用FormView!! --------------------编程问答--------------------     <Fields>
        <asp:BoundField DataField="STBT" SortExpression="STBT" />

<asp:TemplateField>
<EditItemTemplate>
<asp:RadioButtonList ID="RadioButtonList2" runat="server">
<asp:ListItem>这里怎么绑定呢?</asp:ListItem>
</asp:RadioButtonList>
</EditItemTemplate>
</asp:TemplateField>


    </Fields> --------------------编程问答--------------------
引用 4 楼 koukoujiayi 的回复:
DetailsView是表格形式,要在不同的表格行插入一个RadioButtonList控件是不行的,
可改用FormView!!

用FormView的话,还是存在类似的问题
<asp:FormView ID="FormView1" runat="server" AllowPaging="True" DataKeyNames="STBT"
    DataSourceID="SqlDataSource1">
    <ItemTemplate>        
        <asp:Label ID="STBTLabel" runat="server" Text='<%# Bind("STBT") %>'></asp:Label><br />
<asp:RadioButtonList ID="RadioButtonList3" runat="server" DataSourceID="SqlDataSource1">
<asp:ListItem><%# Bind("S1") %></asp:ListItem>
    <asp:ListItem><%# Bind("S2") %></asp:ListItem>
    <asp:ListItem><%# Bind("S3") %></asp:ListItem>
    <asp:ListItem><%# Bind("S4") %></asp:ListItem>
</asp:RadioButtonList>
    </ItemTemplate>
</asp:FormView>
提示<asp:ListItem></asp:ListItem>之间的代码出错,“此上下文中不支持代码块”…… --------------------编程问答-------------------- 看了5楼代码,RadioButtonList是放在一个<EditItemTemplate>下的,如果是这样,绑定可以在DetailsView的DataBound中进行,代码如下:
    protected void DetailsView1_DataBound(object sender, EventArgs e)
    {
        if (DetailsView1.CurrentMode == DetailsViewMode.Edit)//确认当前是编辑模式
        {
            RadioButtonList rb=(RadioButtonList)DetailsView1.FindControl("RadioButtonList2");//找到RadioButtonList2
            rb.DataSource = xxx;//调用某个DataSource函数
            rb.DataBind();
        }
    }

--------------------编程问答-------------------- 看了6楼代码,才知道是用数据源控件SqlDataSource,
RadioButtonList绑定SqlDataSource只设置两个属性:
DataTextField和DataValueField,如下:
.................
<asp:RadioButtonList ID="RadioButtonList1" runat="server"   DataSourceID="SqlDataSource1" DataTextField="字段1" DataValueField="字段2"> </asp:RadioButtonList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"  ConnectionString="<%$ ConnectionStrings:yourConnectionString %>"  SelectCommand="SELECT * FROM .......">
</asp:SqlDataSource>

..........
--------------------编程问答-------------------- protected void DetailsView1_PreRender(object sender, EventArgs e)  
{  
if (IsPostBack)  
{  
DetailsView detailsView = (DetailsView)sender;  
if (detailsView.CurrentMode == DetailsViewMode.Edit)  
{  
RadioButtonList rdbl= (RadioButtonList)detailsView.FindControl("RadioButtonList1");  
 
}  
}  
}
--------------------编程问答-------------------- 学习~~~``
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,