Author: lluis
Date: 2005-04-15 16:41:42 -0400 (Fri, 15 Apr 2005)
New Revision: 43074

Modified:
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/DetailsView.cs
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/TemplateField.cs
Log:
2005-04-15  Lluis Sanchez Gual <[EMAIL PROTECTED]>

        * DetailsView.cs: Added some null checks.
        * TemplateField.cs: Implemented support for two-way bindings.



Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2005-04-15 20:41:11 UTC (rev 43073)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2005-04-15 20:41:42 UTC (rev 43074)
@@ -1,3 +1,8 @@
+2005-04-15  Lluis Sanchez Gual <[EMAIL PROTECTED]>
+
+       * DetailsView.cs: Added some null checks.
+       * TemplateField.cs: Implemented support for two-way bindings.
+
 2005-04-14  Lluis Sanchez Gual <[EMAIL PROTECTED]>
 
        * DetailsView.cs: Implemented support for Insert operation. 

Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/DetailsView.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/DetailsView.cs 
2005-04-15 20:41:11 UTC (rev 43073)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/DetailsView.cs 
2005-04-15 20:41:42 UTC (rev 43074)
@@ -1706,7 +1706,7 @@
                                
                                for (int n=0; n<row.Cells.Count; n++) {
                                        DataControlFieldCell fcell = 
row.Cells[n] as DataControlFieldCell;
-                                       if (fcell != null) {
+                                       if (fcell != null && 
fcell.ContainingField != null) {
                                                if (n == 0 && 
fcell.ContainingField.ShowHeader) {
                                                        if (fieldHeaderStyle != 
null)
                                                                
fieldHeaderStyle.AddAttributesToRender (writer, fcell);
@@ -1715,7 +1715,7 @@
                                                else
                                                        
fcell.ContainingField.ItemStyle.AddAttributesToRender (writer, fcell);
                                        }
-                                       fcell.Render (writer);
+                                       row.Cells[n].Render (writer);
                                }
                                row.RenderEndTag (writer);
                        }

Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/TemplateField.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/TemplateField.cs       
2005-04-15 20:41:11 UTC (rev 43073)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/TemplateField.cs       
2005-04-15 20:41:42 UTC (rev 43074)
@@ -29,6 +29,7 @@
 //
 
 #if NET_2_0
+using System.Collections;
 using System.Collections.Specialized;
 using System.Web.UI;
 using System.Security.Permissions;
@@ -130,7 +131,7 @@
                                }
                        } else {
                                if ((rowState & DataControlRowState.Insert) != 
0) {
-                                       if (headerTemplate != null) {
+                                       if (insertItemTemplate != null) {
                                                
insertItemTemplate.InstantiateIn (cell);
                                                return;
                                        }
@@ -154,10 +155,23 @@
                        base.InitializeCell (cell, cellType, rowState, 
rowIndex);
                }
                
-               [MonoTODO]
                public override void ExtractValuesFromCell (IOrderedDictionary 
dictionary,
                        DataControlFieldCell cell, DataControlRowState 
rowState, bool includeReadOnly)
                {
+                       IBindableTemplate bt;
+                       
+                       if ((rowState & DataControlRowState.Insert) != 0)
+                               bt = insertItemTemplate as IBindableTemplate; 
+                       else if ((rowState & DataControlRowState.Edit) != 0)
+                               bt = editItemTemplate as IBindableTemplate;
+                       else
+                               return;
+                       
+                       if (bt != null) {
+                               IOrderedDictionary values = bt.ExtractValues 
(cell);
+                               foreach (DictionaryEntry e in values)
+                                       dictionary [e.Key] = e.Value; 
+                       }
                }
                
                public override void ValidateSupportsCallback ()

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to