我想创建一个单选按钮maxtrix,如下图所示!
我尝试使用重复,但行和列之间的数据不同。所以我不能为转发器设置数据源。有办法分组2列表,并为Repeater设置数据源,通过调用Eval("row")
,Eval("column")
和Eval("mark")
var lstMatrixAnswer = JsonConvert.DeserializeObject<Answer>(json); //Get from json format
var row = lstMatrixAnswer.row.Select(p => p.row).ToList(); //Row datasource
var col= lstMatrixAnswer.column.Select(p => p.answer + "///" + p.mark).ToList(); //Column datasource (i want radio values is "mark")
public class AnswerCol
{
public string answer { get; set; }
public int mark { get; set; }
}
public class AnswerRow
{
public string row { get; set; }
}
public class Answer
{
public List<AnswerRow> row { get; set; }
public List<AnswerCol> column { get; set; }
}
//这是转发器,但我确保它是不可能的。
<asp:Repeater ID="rptAnswer" runat="server">
<HeaderTemplate>
<table class="table table-striped table-hover table-bordered dataTable" id="tblObject">
<thead>
<th style="vertical-align: middle"><%#Eval("col")%></th>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%#Eval("answer") %>
</td>
<td>
<input id="Radio1" type="radio" runat="server" value='<%#Eval("mark") %>' />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</tbody>
</table>
</FooterTemplate>
</asp:Repeater>
==感谢阅读==
答案 0 :(得分:1)
我做了类似这样的事情,只使用asp.net和javascript
在这里,我只发布了一小部分,希望它足以让你继续前进
<table width="100%" style="border-collapse:collapse;text-align:center" cellpadding="2" border="0" class="qoptions">
<tr style="font-weight:bold">
<td align="left" width="15%">Function</td>
<td style="color:#b91d47; font-size:large;font-weight:bold; text-align:center">Highly Dissatisfied</td>
<td style="color:#b91d47; font-size:large;font-weight:bold; text-align:center">Dissatisfied</td>
<td style="color:#b91d47; font-size:large;font-weight:bold; text-align:center">Satisfied</td>
<td style="color:#b91d47; font-size:large;font-weight:bold; text-align:center">Highly Satisfied</td>
<td style="font-weight:bold;" align="right"><span style="padding-right:75px">Comments <span class="instructions">(optional)</span></span></td>
</tr>
<tr style="background-color:#FDE6EA" id="BST"> <%--id="F0Q1"--%>
<td align="left" id="F0Name" >BST</td>
<td><asp:RadioButton ID="rbQ1F0_1" runat="server" GroupName="Q1F0" /></td>
<td><asp:RadioButton ID="rbQ1F0_2" runat="server" GroupName="Q1F0" /></td>
<td ><asp:RadioButton ID="rbQ1F0_3" runat="server" GroupName="Q1F0" /></td>
<td><asp:RadioButton ID="rbQ1F0_4" runat="server" GroupName="Q1F0" /></td>
<td align="right"><asp:TextBox ID="txtQ1F0" runat="server" TextMode="MultiLine" Rows="2" Columns="35" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);" /> </td>
<asp:HiddenField runat="server" ID="Q1F0Val" Value="" />
</tr>
<tr class="altrow" id="F1Q2">
<td align="left" id="F1Name">F1</td>
<td><asp:RadioButton ID="Q2F1_1" runat="server" GroupName="Q2F1" /></td>
<td><asp:RadioButton ID="Q2F1_2" runat="server" GroupName="Q2F1" /></td>
<td ><asp:RadioButton ID="Q2F1_3" runat="server" GroupName="Q2F1" /></td>
<td><asp:RadioButton ID="Q2F1_4" runat="server" GroupName="Q2F1" /></td>
<td align="right"><asp:TextBox ID="txtQ2F1" runat="server" TextMode="MultiLine" Rows="2" Columns="35" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);" /> </td>
<asp:HiddenField runat="server" ID="Q2F1Val" Value="" />
</tr>
<tr id="F2Q2">
<td align="left" id="F2Name" >F2</td>
<td><asp:RadioButton ID="Q2F2_1" runat="server" GroupName="Q2F2" /></td>
<td><asp:RadioButton ID="Q2F2_2" runat="server" GroupName="Q2F2" /></td>
<td><asp:RadioButton ID="Q2F2_3" runat="server" GroupName="Q2F2" /></td>
<td><asp:RadioButton ID="Q2F2_4" runat="server" GroupName="Q2F2" /></td>
<td align="right"><asp:TextBox ID="txtQ2F2" runat="server" TextMode="MultiLine" Rows="2" Columns="35" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);" /> </td>
<asp:HiddenField runat="server" ID="Q2F2Val" Value="" />
</tr>
<tr class="altrow" id="F3Q2">
<td align="left" id="F3Name" >F3</td>
<td><asp:RadioButton ID="Q2F3_1" runat="server" GroupName="Q2F3" /></td>
<td><asp:RadioButton ID="Q2F3_2" runat="server" GroupName="Q2F3" /></td>
<td><asp:RadioButton ID="Q2F3_3" runat="server" GroupName="Q2F3" /></td>
<td><asp:RadioButton ID="Q2F3_4" runat="server" GroupName="Q2F3" /></td>
<td align="right"><asp:TextBox ID="txtQ2F3" runat="server" TextMode="MultiLine" Rows="2" Columns="35" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);"/> </td>
<asp:HiddenField runat="server" ID="Q2F3Val" Value="" />
</tr>
<tr id="F4Q2">
<td align="left" id="F4Name" >F4</td>
<td><asp:RadioButton ID="Q2F4_1" runat="server" GroupName="Q2F4" /></td>
<td><asp:RadioButton ID="Q2F4_2" runat="server" GroupName="Q2F4" /></td>
<td><asp:RadioButton ID="Q2F4_3" runat="server" GroupName="Q2F4" /></td>
<td><asp:RadioButton ID="Q2F4_4" runat="server" GroupName="Q2F4" /></td>
<td align="right"><asp:TextBox ID="txtQ2F4" runat="server" TextMode="MultiLine" Rows="2" Columns="35" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);"/> </td>
<asp:HiddenField runat="server" ID="Q2F4Val" Value="" />
</tr>
<tr class="altrow" id="F5Q2">
<td align="left" id="F5Name" >F5</td>
<td><asp:RadioButton ID="Q2F5_1" runat="server" GroupName="Q2F5" /></td>
<td><asp:RadioButton ID="Q2F5_2" runat="server" GroupName="Q2F5" /></td>
<td><asp:RadioButton ID="Q2F5_3" runat="server" GroupName="Q2F5" /></td>
<td><asp:RadioButton ID="Q2F5_4" runat="server" GroupName="Q2F5" /></td>
<td align="right"><asp:TextBox ID="txtQ2F5" runat="server" TextMode="MultiLine" Rows="2" Columns="35" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);"/> </td>
<asp:HiddenField runat="server" ID="Q2F5Val" Value="" />
</tr>
<tr id="F6Q2">
<td align="left" id="F6Name" >F6</td>
<td><asp:RadioButton ID="Q2F6_1" runat="server" GroupName="Q2F6" /></td>
<td><asp:RadioButton ID="Q2F6_2" runat="server" GroupName="Q2F6" /></td>
<td><asp:RadioButton ID="Q2F6_3" runat="server" GroupName="Q2F6" /></td>
<td><asp:RadioButton ID="Q2F6_4" runat="server" GroupName="Q2F6" /></td>
<td align="right"><asp:TextBox ID="txtQ2F6" runat="server" TextMode="MultiLine" Rows="2" Columns="35" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);"/> </td>
<asp:HiddenField runat="server" ID="Q2F6Val" Value="" />
</tr>
<tr class="altrow" id="F7Q2">
<td align="left" id="F7Name" >F7</td>
<td><asp:RadioButton ID="Q2F7_1" runat="server" GroupName="Q2F7" /></td>
<td><asp:RadioButton ID="Q2F7_2" runat="server" GroupName="Q2F7" /></td>
<td><asp:RadioButton ID="Q2F7_3" runat="server" GroupName="Q2F7" /></td>
<td><asp:RadioButton ID="Q2F7_4" runat="server" GroupName="Q2F7" /></td>
<td align="right"><asp:TextBox ID="txtQ2F7" runat="server" TextMode="MultiLine" Rows="2" Columns="35" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);"/> </td>
<asp:HiddenField runat="server" ID="Q2F7Val" Value="" />
</tr>
<tr id="F8Q2">
<td align="left" id="F8Name" >F8</td>
<td><asp:RadioButton ID="Q2F8_1" runat="server" GroupName="Q2F8" /></td>
<td><asp:RadioButton ID="Q2F8_2" runat="server" GroupName="Q2F8" /></td>
<td><asp:RadioButton ID="Q2F8_3" runat="server" GroupName="Q2F8" /></td>
<td><asp:RadioButton ID="Q2F8_4" runat="server" GroupName="Q2F8" /></td>
<td align="right"><asp:TextBox ID="txtQ2F8" runat="server" TextMode="MultiLine" Rows="2" Columns="35" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);"/> </td>
<asp:HiddenField runat="server" ID="Q2F8Val" Value="" />
</tr>
</table>
示例:Q2F8_1表示问题2功能8,_1的评级非常不满意。
您可以使用javascript在隐藏字段中保存1,2,3或4,这将是您对密钥的评级。
访问c#代码中的隐藏字段并在那里播放代码