簡體   English   中英

使用ASP.Net ListView.ExtractItemValues,如何在ListViewDataItem的RadioButtonList中獲得所選項目?

[英]Using ASP.Net ListView.ExtractItemValues, how do I get the selected item in a RadioButtonList in the ListViewDataItem?

我試圖遍歷ASP.Net ListView中的ListViewDataItems,並使用ListView.ExtractItemValues從DataBoundControls獲取值。 這在ITextControls上可以正常工作,但是我很難從RadioButtonList獲取Selected Item。

這是我的標記:

<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選項的列表。 如何知道用戶選擇了哪一個?

好吧,我最終實現了Control的擴展方法,該方法實現了遞歸FindControl,如Steve Smith在遞歸FindControl上的博客文章所述。 因為只有兩個我關心的可綁定控件(Label和ListControl),所以這足夠好了。 與用戶界面緊密相關,但我不知道該怎么辦。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM