Kaynağa Gözat

2009-04-28 Marek Habersack <[email protected]>

	* GridView.cs: implemented ColumnsGenerator and enabled its use in
	CreateColumns.

	* DetailsView.cs: implemented the RowsGenerator property and
	enabled its use in CreateFieldSet.

svn path=/trunk/mcs/; revision=132833
Marek Habersack 16 yıl önce
ebeveyn
işleme
db1c3a970d

+ 8 - 0
mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog

@@ -1,3 +1,11 @@
+2009-04-28  Marek Habersack  <[email protected]>
+
+	* GridView.cs: implemented ColumnsGenerator and enabled its use in
+	CreateColumns.
+
+	* DetailsView.cs: implemented the RowsGenerator property and
+	enabled its use in CreateFieldSet.
+
 2009-04-07  Marek Habersack  <[email protected]>
 
 	* TreeView.js: removed nodeText parameter from the JS calls.

+ 15 - 1
mcs/class/System.Web/System.Web.UI.WebControls/DetailsView.cs

@@ -876,7 +876,13 @@ namespace System.Web.UI.WebControls
 				return rows;
 			}
 		}
-		
+
+		[BrowsableAttribute(false)]
+		public IAutoFieldGenerator RowsGenerator {
+			get;
+			set;
+		}
+
 		[WebCategoryAttribute ("Styles")]
 		[PersistenceMode (PersistenceMode.InnerProperty)]
 		[NotifyParentProperty (true)]
@@ -960,6 +966,14 @@ namespace System.Web.UI.WebControls
 		
 		protected virtual ICollection CreateFieldSet (object dataItem, bool useDataSource)
 		{
+			bool autoGenerate = AutoGenerateRows;
+			
+			if (autoGenerate) {
+				IAutoFieldGenerator fieldGenerator = RowsGenerator;
+				if (fieldGenerator != null)
+					return fieldGenerator.GenerateFields (this);
+			}
+			
 			ArrayList fields = new ArrayList ();
 			
 			if (AutoGenerateRows) {

+ 15 - 1
mcs/class/System.Web/System.Web.UI.WebControls/GridView.cs

@@ -543,6 +543,12 @@ namespace System.Web.UI.WebControls
 			}
 		}
 
+		[BrowsableAttribute(false)]
+		public IAutoFieldGenerator ColumnsGenerator {
+			get;
+			set;
+		}
+
 		[DefaultValueAttribute (null)]
 		[WebCategoryAttribute ("Data")]
 		[TypeConverter (typeof(StringArrayConverter))]
@@ -1097,6 +1103,14 @@ namespace System.Web.UI.WebControls
 		
 		protected virtual ICollection CreateColumns (PagedDataSource dataSource, bool useDataSource)
 		{
+			bool autoGenerate = AutoGenerateColumns;
+
+			if (autoGenerate) {
+				IAutoFieldGenerator fieldGenerator = ColumnsGenerator;
+				if (fieldGenerator != null)
+					return fieldGenerator.GenerateFields (this);
+			}
+			
 			ArrayList fields = new ArrayList ();
 			
 			if (AutoGenerateEditButton || AutoGenerateDeleteButton || AutoGenerateSelectButton) {
@@ -1109,7 +1123,7 @@ namespace System.Web.UI.WebControls
 
 			fields.AddRange (Columns);
 			
-			if (AutoGenerateColumns) {
+			if (autoGenerate) {
 				if (useDataSource)
 					autoFieldProperties = CreateAutoFieldProperties (dataSource);