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控件,怎么样使它绑定相应的数据呢?
万分感谢!

解决方案 »

  1.   

    你的选项是用什么分隔?
    如果有一定的规则的话,就直接在页面写:<% string[] option = content.split(','); %>
       <% foreach(string s in options){ %>
           <input type="radio" name="aaa" value="<%=s%>" />
       <% } %>
      

  2.   

    这些代码写在哪儿呢?    <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>
      

  3.   

    DetailsView是表格形式,要在不同的表格行插入一个RadioButtonList控件是不行的,
    可改用FormView!!
      

  4.   

        <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>
      

  5.   

    用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>之间的代码出错,“此上下文中不支持代码块”……
      

  6.   

    看了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();
            }
        }
      

  7.   

    看了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>
    ..........
      

  8.   

    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");  
     
    }  
    }  
    }