回答
您可以通過修改LINQ to SQL文件中公共屬性的順序來實現。
例如,我進入了Northwind.designer.cs,這是我自動生成的LINQ to SQL文件,並將名爲Products的公共屬性移動到public partial class Category中的公共屬性CategoryName的上方。然後我重新編譯,默認模板以我的新順序顯示列。
當然,這意味着您編輯自動生成的代碼,如果您重新生成它,您的更改將丟失,所以這種技術不是沒有危險。
您必須在DynamicData文件夾中創建一個自定義頁面。
步驟如下:
- 創建一個文件夾是相同的名稱表名稱要自定義下的「DynamicData \ CustomPages」文件夾
- 列的順序創建自定義頁面在「DynamicData \ CustomPages \ [帶表名的文件夾]」文件夾下。
- 我只是將「DynamicData \ PageTemplates」中現有的「List.aspx」文件複製到上面的文件夾中。
- 打開aspx文件並修改GridView控件「的AutoGenerateColumns =‘假’,」
- 的GridView的內柱部分,用「數據字段」屬性值加「DynamicControl」控制你列的名稱你想要的訂單。
這裏是ScottHa截屏: http://www.asp.net/learn/3.5-SP1/video-293.aspx
按照this話題 - 你可以在動態數據期貨DLL使用ColumnOrderAttribute。您可以從codeplex獲取期貨。
的GridView有ColumnsGenerator財產,通過實施IAutoFieldGenerator界面中,你可以根據你的自定義規則設置字段訂單GenerateFields方法使用它(屬性,元信息,...)
protected override void OnInit(EventArgs e)
{
...
this.gvItemsList.ColumnsGenerator = new EntityFieldsGenerator(CurrentDataSource.CurrentTableMetadata);
...
}
public class EntityFieldsGenerator : IAutoFieldGenerator {
...
public ICollection GenerateFields(Control control)
{
// based on entity meta info
var fields = from item in this.entityMetadata.Columns
where this.IncludeColumn(item.Value)
orderby item.Value.Order
select new DynamicField
{
DataField = item.Value.Column.Name,
HeaderText = item.Value.DisplayName,
DataFormatString = item.Value.DataFormatString,
UIHint = GetColumnUIHint(item.Value)
};
return fields.ToList();
} }
爲了避免使用動態數據期貨DLL,你可以滾你自己ColumnOrder屬性如下:
[AttributeUsage(AttributeTargets.Property)]
public class ColumnOrderAttribute : Attribute
{
public int Order { get; private set; }
public ColumnOrderAttribute() { Order = int.MaxValue; }
public ColumnOrderAttribute(int order) { Order = order; }
public static ColumnOrderAttribute Default = new ColumnOrderAttribute();
}
,然後在你的類實現IAutoFieldGenerator,你有
public static class ExtensionMethods
{
public static int GetOrder (this MetaColumn column)
{
var orderAttribute = column.Attributes.OfType<ColumnOrderAttribute>().DefaultIfEmpty(ColumnOrderAttribute.Default).Single();
return orderAttribute.Order;
}
}
public ICollection GenerateFields(Control control)
{
var fields = new List<DynamicField>();
var columns = _table.Columns.OrderBy(column => column.GetOrder());
foreach (var column in columns)
{
if (!column.Scaffold) { continue; }
fields.Add(new DynamicField {DataField = column.Name});
}
}
,最後你的使用看起來像
[MetadataType(typeof(CustomerMetadata))]
public partial class Customer {}
public class CustomerMetadata
{
[ColumnOrder(1)]
public object FirstName {get;set;}
[ColumnOrder(2)]
public object LastName {get;set;}
}
在.NET 4.0中,使用4。0版本的動態數據的dll,您可以設置數據的註釋,像這樣:
[Display(Name = " Mission Statement", Order = 30)]
public object MissionStatement { get; set; }
[Display(Name = "Last Mod", Order = 40)]
public object DateModified { get; private set; }
我回答一個老問題,因爲它似乎對我來說,可能的解決方案在該框架的新版本改變。
看起來Display(Order)現在直接按照問題(.NET 4.0上的Visual Web Developer 2010)工作,沒有任何特殊的解決方法。
例子:
[Display(Order = 50)]
是按正確的對象名稱來映射外鍵一個重要的事情:
在一個項目場OperatoreID在實體類譯爲:
public object Operatore { get; set; }
正在操作外鍵的源表;對於同一個表中的第二個參考,它將得到類似1等等。
- 1. 如何在FileHelpers中動態更改類的字段順序
- 2. 數據表按編號字段順序
- 3. 執行順序,靜態塊,字段
- 4. LINQ根據動態列表更新數據庫排序順序
- 5. Linq到數據集的動態列和動態組的字段
- 6. 數據包中的UDP字節順序
- 7. 續集中的動態排序順序
- 8. 動態數據鏈接字段名稱
- 9. 密碼字段與Asp.Net動態數據
- 10. Chronoforms字段插入動態數據
- 11. SAS:在數據步驟中重新排列字段順序
- 12. 如何驗證動態AX中的數據源中的字段
- 13. 忽略DataContractSerializer中的字段順序
- 14. 在Django窗體中的字段順序
- 15. FieldArray中的動態字段
- 16. 什麼是currentOp的「查詢」字段中的字段順序?
- 17. LINQ CompiledQuery中的動態順序(SQL ORDERBY)
- 18. SQL Server中多列的動態順序
- 19. 按字母順序排列動態採用的數組
- 20. 以日期順序顯示動態列的數據透視表
- 21. MySQL - 索引,字段順序
- 22. 查找字段順序
- 23. ElasticSearch多個字段的排序順序
- 24. 序列化時的順序字段
- 25. SQLite數據庫中的數據順序
- 26. 動態字段
- 27. 動態顯示文本字段中的數據ruby on rails
- 28. 動態數據 - 如何顯示列表中的主鍵字段
- 29. 動態列出數據庫表中的字段
- 30. 動態數據中外鍵字段的新按鈕
正是我所需要的..謝謝! – ArjanP 2011-03-03 02:50:59