...まったく機能しません。私はフリックンのもののすべての異なる組み合わせで何日も試しましたが、それは動揺しません.
確かに、「拡張された EF クラスのパブリック プロパティを次の方法で表示できることは誰もが知っていることです」や「もしデータモデルを拡張して計算フィールドを表示したいのですが、単純に...」 - 私にとってはそれほど単純ではありません - うーん!!!
したがって、すべての典型的な例に従って、私の EF 部分クラスは次のようになります。
[DisplayColumn("Name")]
[MetadataType(typeof(SaleProduct_Metadata))]
public partial class SaleProduct
{
public string Test
{
get
{
return "blah";
}
}
public class SaleProduct_Metadata
{
[ScaffoldColumn(true)]
public string Test;
}
}
私の global.asax は次のようになります。
MetaModel model = new MetaModel();
model.RegisterContext(typeof(Sale.Models.SaleEntities), new ContextConfiguration() { ScaffoldAllTables = true });
routes.Add(new DynamicDataRoute("DD/{table}/{action}.aspx")
{
Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),
Model = model
});
そして、私の List.aspx.cs は次のようになります。
public partial class List : System.Web.UI.Page
{
protected MetaTable table;
protected void Page_Init(object sender, EventArgs e)
{
//DynamicDataManager1.RegisterControl(GridView1, true /*setSelectionFromUrl*/);
table = GridDataSource.GetTable();
DynamicDataManager1.RegisterControl(GridView1, true /*setSelectionFromUrl*/);
GridView1.ColumnsGenerator = new AdvancedFieldGenerator(table, true);
}
protected void Page_Load(object sender, EventArgs e)
{
table = GridDataSource.GetTable();
Title = table.DisplayName;
GridDataSource.Include = table.ForeignKeyColumnsNames;
InsertHyperLink.NavigateUrl = table.GetActionPath(PageAction.Insert);
// Disable various options if the table is readonly
if (table.IsReadOnly)
{
GridView1.Columns[0].Visible = false;
InsertHyperLink.Visible = false;
}
}
protected void OnFilterSelectedIndexChanged(object sender, EventArgs e)
{
GridView1.PageIndex = 0;
}
}
...Dynamic Data Futures のバージョンを使用して、列の順序付け、より優れた検証などの機能を取得していますが、正常に動作しています。(例) List.aspx.cs (上に表示) にいくつかの調整を加え、日付の書式を変更して、NZ スタイルの日付が米国の Web サーバーで機能するようにしました。それ以外は、すべてかなり標準的です。
私の EF モデルは別のアセンブリに格納されており、(明らかに) 部分クラスを使用して一部のエンティティを拡張しています。計算された血まみれのフィールドを 2 つ表示したいだけですが、まったく成功していません。レンガの壁に頭をぶつけている新しいプログラマーのように感じます。古いトリックはどれも機能しません。プログラミングはそれほど難しくないはずです :-(
どなたか、どなたか、助けてください!!
バーナード。