我有以下的加價:子控件可以使用父類的數據源嗎?
<div class="section">
<p runat="server" id="sectionName"></p>
</div>
<div class="label">
<div class="activity-header">Activity</div>
<div class="status-header">Status</div>
<div class="comment-header">Comment</div>
</div>
<asp:Repeater ID="rptActivity" runat="server">
<ItemTemplate>
<div class="under-label">
<div class="activity">
<%#Eval("ActivityName")%>
<input type="hidden" name="activityId" value='<%#Eval("ActivityId")%>' />
</div>
<div class="status">
<asp:DropDownList ID="ddlStatuses" DataValueField="Id" DataTextField="Name" DataSourceID="SqlDataSource1" runat="server"></asp:DropDownList>
</div>
<div class="comment">
<textarea name="comments" cols="35" rows="3" name="comment" style="float: left; margin: 0px 0px 0px 25px; font-family: Geneva, Arial, Helvetica, sans-serif;"><%#Eval("Comment")%></textarea>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:PhumafConnectionString %>" SelectCommand="SELECT * FROM [Status]">
</asp:SqlDataSource>
爲rptActivity直放站的數據源是列表和助手定義如下:
public class Helper
{
public string ActivityName { get; set; }
public long ActivityId { get; set; }
public long StatusId { get; set; }
public string Comment { get; set; }
}
正如你可以看到我綁定相關領域該實體的屬性並將所有ddlStatuses綁定到返回所有狀態的數據源。但是,由於這是一個更新屏幕,我希望選擇之前選擇的狀態,並且通過幫助器的PropIdStateId擁有該Id實體。
嘗試將ddlStatuses的SelectedValue設置爲<%# Eval("StatusId") %>
,但它引發了一個異常,我只能從綁定該控件的數據源調用props。
基本上我有StatusIds我需要讓他們在ddlStatuses中選擇。
我該怎麼做?
編輯:
我忘了提及的是,解決方案我腦子裏想的是包括List<Status>
作爲輔助類的屬性,這樣我將有statusId以及所有其他的一種狀態,但是如果我不能使用父級的數據源,這將不起作用。
我編輯了自己的冠軍。請參見「[應的問題包括‘標籤’,在他們的頭銜?(http://meta.stackexchange.com/questions/19190/)」,這裏的共識是「不,他們不應該」。 –