我想腳手架一個基本的插入表單,其中有外鍵的下拉菜單。腳手架從EF源的Web應用程序動態數據下拉列表
我似乎無法弄清楚如何做到這一點。在創建元數據時,所有MetaColumns都是MetaColumns類型,而不是MetaForeignKeyColumns類型 - 這意味着它爲所有屬性呈現文本框 - 並且沒有下拉列表。
UIHints似乎無效。我首先使用實體框架代碼。我如何着手將這些文本框變爲下拉菜單?實際上,我認爲MetaData屬性沒有被創建(我可能在這裏丟失了一些東西)。
AddPermission.aspx(窗體只)
<asp:FormView runat="server" ID="AddPermissionForm"
ItemType="Common.Models.tag_permission"
InsertMethod="AddPermissionsForm_InsertItem" DefaultMode="Insert"
RenderOuterTable="false" OnItemInserted="AddPermissionForm_ItemInserted">
<InsertItemTemplate>
<fieldset>
<ol>
<asp:DynamicEntity runat="server" Mode="Insert" EnableViewState="true" ></asp:DynamicEntity>
</ol>
<asp:Button class="btn btn-primary" runat="server" Text="Insert" CommandName="Insert" />
<asp:Button class="btn btn-default" runat="server" Text="Cancel" CausesValidation="false" OnClick="CancelButton_Click" />
</fieldset>
</InsertItemTemplate>
tag_permission.cs(代碼首先模型的一部分)
public partial class tag_permission
{
[ScaffoldColumn(false)]
public short tp_tag_permission_id { get; set; }
//foreign key one
public string tp_security_group_id { get; set; }
//foreign key two
public short tp_tag_id { get; set; }
[Display(Name = "View")]
public Nullable<bool> tp_vis { get; set; }
}
我可能會使用一個DynamicDataManager或什麼的,但我不知道在哪裏可以找到如何或如果它應該在這個頁面上使用鋁在formview上。
我還附加了截圖,比較了我的web應用程序中的Default_Insert.aspx.cs和基本DynamicData網站的渲染 - 幾乎與模板相差甚遠。在下面的圖片中,正在DynamicData/Default_Insert.ascx.cs中檢查MetaTable Table屬性。
後面的圖片具有不完整的MetaTable屬性。它具有DataContextType和DataContextPropertyName以及ForeignKeyColumnNames的空值。我真的很想設定元表上FormView控件正確
參考:從下面的圖片中的代碼是
public partial class Default_InsertEntityTemplate : System.Web.DynamicData.EntityTemplateUserControl {
private MetaColumn currentColumn;
protected override void OnLoad(EventArgs e) {
foreach (MetaColumn column in Table.GetScaffoldColumns(Mode, ContainerType)) {
currentColumn = column;
Control item = new DefaultEntityTemplate._NamingContainer();
EntityTemplate1.ItemTemplate.InstantiateIn(item);
EntityTemplate1.Controls.Add(item);
}
}
...