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%>" />
<% } %>
这些代码写在哪儿呢?
--------------------编程问答-------------------- DetailsView是表格形式,要在不同的表格行插入一个RadioButtonList控件是不行的,
<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>
可改用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> --------------------编程问答--------------------
用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