【问题标题】:Using ASP.Net ListView.ExtractItemValues, how do I get the selected item in a RadioButtonList in the ListViewDataItem?使用 ASP.Net ListView.ExtractItemValues,如何获取 ListViewDataItem 中 RadioButtonList 中的选定项?
【发布时间】:2009-04-10 04:02:18
【问题描述】:

我正在尝试遍历 ASP.Net ListView 中的 ListViewDataItems,并使用 ListView.ExtractItemValues 从 DataBoundControls 中获取值。这适用于 ITextControls,但我很难从 RadioButtonList 中获取所选项目。

这是我的标记:

<asp:ListView ID="lvQuiz" runat="server">
<LayoutTemplate>
<fieldset>
<ul>
    <asp:PlaceHolder ID="itemplaceholder" runat="server"></asp:PlaceHolder>
</ul>    
</fieldset> 
<asp:Button ID="cmdSubmit" runat="server" Text="Submit" OnClick="cmdSubmit_Click" />

</LayoutTemplate>
<ItemTemplate>
    <li>
        <fieldset>
            <legend>
                <asp:Label ID="lblQuestionText" runat="server" Text='<%# Bind("Question.QuestionText") %>' />
            </legend>
            <asp:RadioButtonList ID="rblResponse" runat="server" DataTextField="ResponseText" DataValueField="Id" 
                DataSource='<%# Bind("Question.PossibleResponses") %>'>
            </asp:RadioButtonList>
        </fieldset>
    </li>
</ItemTemplate>

这是我试图提取值的代码:

var Q = (Quiz)Session["Quiz"];

foreach (var item in lvQuiz.Items)
{                
    var itemValues = new OrderedDictionary();
    lvQuiz.ExtractItemValues(itemValues, item, true);

    var myQuestion = Q.UserResponses.Keys
        .Where(x => x.QuestionText == itemValues["Question.QuestionText"])
        .Single();

    Q.UserResponses[myQuestion] = itemValues["Question.PossibleResponses"].SelectedItem
}

我的问题在于最后一行。 "Question.PossibleResponses" 绑定到 RadioButtonList,但 itemValues["Question.PossibleResponses"] 的值返回我的 RadioButtonList 的所有选项的列表。如何判断用户选择了哪一个?

【问题讨论】:

    标签: c# asp.net listview


    【解决方案1】:

    好吧,我最终为 Control 实现了一个扩展方法,该方法实现了递归 FindControl,正如 Recursive FindControl 上的 Steve Smith 博客文章中所述。因为我只有两个我关心的可绑定控件(Label 和一个 ListControl),所以这已经足够好了。与 UI 紧密耦合,但我不知道还能做什么。

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      相关资源
      最近更新 更多