Listview绑定代码
<asp:Content ID="Content3" ContentPlaceHolderID="leftColumnPlaceHolder" runat="server">
<asp:ListView ID="lvQuestions" runat="server" OnItemDataBound='lvQuestions_ItemDataBound'>
<LayoutTemplate>
<div id="itemPlaceholder" runat="server">
</div>
<asp:Button ID="btnSubmitAnswers" runat="server" Text="Submit Answers" OnClick="btnSubmitAnswers_Click" />
</LayoutTemplate>
<ItemTemplate>
<div>
<%# Container.DataItemIndex + 1 %>:<%# Eval("Body") %>
</div>
<asp:RadioButtonList ID="rdlAnswers" runat="server" DataSource='<%#Eval("ExamAnswer") %>' DataTextField='Body' DataValueField="AnswerId">
</asp:RadioButtonList>
</ItemTemplate>
</asp:ListView>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
在提交按钮上获取listview项目的同时单击..如下所示,我们将qsnItem.DataItem作为NULL.
foreach (ListViewDataItem qsnItem in lvQuestions.Items)
{
}
Run Code Online (Sandbox Code Playgroud)
请告诉我这里出了什么问题.
在DataItemASP.NET中的数据绑定的所有网络的控制都null在回传时没DataBind再控制,当它是不必要的ViewState启用(默认).
因此,您可以使用模板中的控件来获取值:
foreach (ListViewDataItem qsnItem in lvQuestions.Items)
{
RadioButtonList rdlAnswers = (RadioButtonList)qsnItem.FindControl("rdlAnswers");
}
Run Code Online (Sandbox Code Playgroud)
如果需要旧值,则需要从数据库加载它们或使用ListViewUpdatedEventArgs.OldValues 属性.
| 归档时间: |
|
| 查看次数: |
2977 次 |
| 最近记录: |