[Mono-bugs] [Bug 595568] New: DataControlField databinding consistency issue between Mono and MS.NET

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sat Apr 10 20:02:38 EDT 2010


http://bugzilla.novell.com/show_bug.cgi?id=595568

http://bugzilla.novell.com/show_bug.cgi?id=595568#c0


           Summary: DataControlField databinding consistency issue between
                    Mono and MS.NET
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.6.x
          Platform: x86-64
        OS/Version: Windows 7
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Sys.Web
        AssignedTo: mhabersack at novell.com
        ReportedBy: sergey.hakobyan at gaiaware.net
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


Created an attachment (id=353603)
 --> (http://bugzilla.novell.com/attachment.cgi?id=353603)
Testcase which adds custom field to the GridView and fails on Mono.

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US)
AppleWebKit/533.3 (KHTML, like Gecko) Chrome/5.0.360.0 Safari/533.3

Some DataControlFields, such as CheckBoxField and ImageField, have two
protected virtual methods: InitializeDataCell() and OnDataBindField().

Overriding only InitializeDataCell() leads to consistency issues, because in
some cases, such as CheckBoxField and ImageField (but not BoundField), Mono
expects the source of the DataBinding event to be the cell, and not the child
control of the cell.

So overriding just the InitializeDataCell() for code reuse works in .NET, but
results in InvalidCastException in Mono.

Original discussion can be found at
http://forum.gaiaware.net/yaf_postsm1935_GridView-and-Mono.aspx .

Reproducible: Always

Steps to Reproduce:
1. Add GridView to Page markup.
2. Set AutoGenerateColumns property to False.
3. Create a derived class from CheckBoxField.
4. Override InitializeDataCell().
5. Create a CheckBox in InitializeDataCell().
6. Add newly created CheckBox the Controls collection of the cell.
7. Attach OnDataBinding() event handler to the newly created CheckBox.
8. During OnInit() event of the GridView create instance of the custom field.
9. Add custom field to the Columns collection of the GridView.
10. During Page_Load DataBind the GridView.
Actual Results:  
Following exception occurs:
System.InvalidCastException: Cannot cast from source type to destination type.
  at System.Web.UI.WebControls.CheckBoxField.OnDataBindField (System.Object
sender, System.EventArgs e) [0x00000] in <filename unknown>:0 

Expected Results:  
Expected the same behavior as with MS.NET: rendering of the CheckBoxes created
by the custom field.

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list