【问题标题】:ASP.NET - How to create radio button maxtrixASP.NET - 如何创建单选按钮矩阵
【发布时间】:2017-05-19 12:29:14
【问题描述】:

我想创建一个如下图所示的单选按钮 maxtrix!

我尝试使用 Repeate,但行和列之间的数据不同。所以我不能为转发器设置数据源。有办法分组 2 列表,并为中继器设置数据源,通过调用 Eval("row")Eval("column")Eval("mark") 显示数据 int 中继器

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>

==感谢阅读==

【问题讨论】:

  • 你能显示你用来显示这个的cshtml吗?
  • 我已经更新了,但我确定这是不可能的

标签: c# asp.net matrix radiobuttonlist


【解决方案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);" />&nbsp;</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);"  />&nbsp;</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);" />&nbsp;</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);"/>&nbsp;</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);"/>&nbsp;</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);"/>&nbsp;</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);"/>&nbsp;</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);"/>&nbsp;</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);"/>&nbsp;</td>
                                <asp:HiddenField runat="server" ID="Q2F8Val" Value="" />
                            </tr>

                        </table>

示例:Q2F8_1 表示问题 2 函数 8,_1 表示高度不满意。

您可以使用 javascript 将 1 、 2 、3 或 4 保存到隐藏字段中,这将是您对密钥的评分。

访问您的 c# 代码中的那些隐藏字段并在那里播放您的代码

【讨论】:

  • 谢谢,但我的数据是动态的!
  • 没问题,动态生成这些字段并不难
  • 但我不知道如何将我的数据填充到表格中:(
  • @AIVN 你可以在c#和javascript中动态构造html,
猜你喜欢
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 2013-02-17
相关资源
最近更新 更多