2 // Tests for System.Web.UI.WebControls.FormView.cs
5 // Chris Toshok (toshok@ximian.com)
9 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33 using NUnit.Framework;
38 using System.Collections;
39 using System.Collections.Generic;
40 using System.Collections.Specialized;
41 using System.Globalization;
44 using System.Web.UI.HtmlControls;
45 using System.Web.UI.WebControls;
46 using MonoTests.SystemWeb.Framework;
47 using MonoTests.stand_alone.WebHarness;
48 using System.Text.RegularExpressions;
49 using System.Reflection;
50 using System.Threading;
54 namespace MonoTests.System.Web.UI.WebControls
57 public class FormViewTest {
59 public class DataSourceObject
61 public static List<string> GetList (string sortExpression, int startRowIndex, int maximumRows) {
65 public static List<string> GetList (int startRowIndex, int maximumRows) {
69 public static List<string> GetList (string sortExpression) {
73 public static List<string> GetList () {
74 List<string> list = new List<string> ();
84 public static int GetCount () {
85 return GetList ().Count;
89 public class DS : ObjectDataSource
91 public static List<string> GetList ()
93 List<string> list = new List<string> ();
103 public void DoRaiseDataSourceChangedEvent (EventArgs e)
105 RaiseDataSourceChangedEvent (e);
109 public class Poker : FormView {
110 public bool isInitializePager=false;
111 public bool ensureDataBound=false;
112 public bool controlHierarchy=false;
113 bool _onPageIndexChangingCalled = false;
114 bool _onPageIndexChangedCalled = false;
120 public object SaveState () {
121 return SaveViewState ();
124 public void LoadState (object state) {
125 LoadViewState (state);
129 public HtmlTextWriterTag PokerTagKey
131 get { return base.TagKey; }
134 public int DoCreateChildControls (IEnumerable source,bool dataBind)
136 return CreateChildControls (source, dataBind);
140 public Style DoCreateControlStyle ()
142 return base.CreateControlStyle ();
145 public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
147 return CreateDataSourceSelectArguments ();
150 public DataSourceView DoGetData ()
155 public FormViewRow DoCreateRow (int itemIndex,DataControlRowType rowType,DataControlRowState rowState)
157 return CreateRow( itemIndex, rowType,rowState);
160 public Table DoCreateTable ()
162 return CreateTable ();
165 protected override void EnsureDataBound ()
167 base.EnsureDataBound ();
168 ensureDataBound = true;
171 public void DoExtractRowValues (IOrderedDictionary filedValues, bool includeKeys)
173 base.ExtractRowValues (filedValues, includeKeys);
177 public bool IsRequiresDataBinding ()
179 return base.RequiresDataBinding;
182 protected override void InitializePager (FormViewRow row, PagedDataSource pageData)
184 base.InitializePager (row, pageData);
185 isInitializePager = true;
188 public void DoInitializeRow (FormViewRow row)
192 public void DoLoadControlState (object savedState)
194 LoadControlState (savedState);
197 public void DoLoadViewState (object savedState)
199 LoadViewState (savedState);
202 public bool DoOnBubbleEvent (object source, EventArgs e)
204 return OnBubbleEvent (source, e);
207 public void DoOnInit (EventArgs e)
212 public void DoOnItemCommand (FormViewCommandEventArgs e)
217 public void DoOnItemCreated (EventArgs e)
222 public void DoOnItemDeleted (FormViewDeletedEventArgs e)
227 public void DoOnItemDeleting (FormViewDeleteEventArgs e)
232 public void DoOnItemInserted (FormViewInsertedEventArgs e)
237 public void DoOnItemInserting (FormViewInsertEventArgs e)
242 public void DoOnItemUpdated (FormViewUpdatedEventArgs e)
247 public void DoOnItemUpdating (FormViewUpdateEventArgs e)
252 public void DoOnModeChanged (EventArgs e )
257 public void DoOnModeChanging (FormViewModeEventArgs e)
262 public void DoOnPageIndexChanged (EventArgs e)
264 OnPageIndexChanged (e);
267 public void DoOnPageIndexChanging (FormViewPageEventArgs e)
269 OnPageIndexChanging (e);
272 public void DoPerformDataBinding (IEnumerable data)
274 PerformDataBinding (data);
277 protected internal override void PrepareControlHierarchy ()
280 base.PrepareControlHierarchy ();
281 controlHierarchy = true;
284 public void DoRaisePostBackEvent (string eventArgument)
286 RaisePostBackEvent (eventArgument);
289 public string Render ()
292 StringWriter sw = new StringWriter ();
293 HtmlTextWriter tw = new HtmlTextWriter (sw);
295 return sw.ToString ();
301 public object DoSaveControlState ()
303 return SaveControlState ();
308 public void DoConfirmInitState ()
310 base.ConfirmInitState ();
313 public void DoOnPreRender (EventArgs e)
315 base.OnPreRender (e);
318 public void DoOnDataBinding (EventArgs e)
320 base.OnDataBinding (e);
322 public void DoOnDataBound (EventArgs e)
324 base.OnDataBound (e);
327 public bool OnPageIndexChangingCalled {
328 set { _onPageIndexChangingCalled = value; }
329 get { return _onPageIndexChangingCalled; }
332 public bool OnPageIndexChangedCalled {
333 set { _onPageIndexChangedCalled = value; }
334 get { return _onPageIndexChangedCalled; }
337 protected override void OnPageIndexChanging (FormViewPageEventArgs e) {
338 OnPageIndexChangingCalled = true;
339 base.OnPageIndexChanging (e);
342 protected override void OnPageIndexChanged (EventArgs e) {
343 OnPageIndexChangedCalled = true;
344 base.OnPageIndexChanged (e);
347 public bool GetRequiresDataBinding () {
348 return RequiresDataBinding;
350 public bool GetInitialized () {
354 public string CallModifiedOuterTableStylePropertyName ()
356 return ModifiedOuterTableStylePropertyName ();
361 class Template : ITemplate
365 public bool Instantiated {
366 get { return _instantiated; }
369 #region ITemplate Members
371 public void InstantiateIn (Control container) {
372 _instantiated = true;
379 ArrayList myds = new ArrayList ();
383 TestMyData.InitData();
391 WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");
392 WebTest.CopyResource (GetType (), "FormViewTest1.aspx", "FormViewTest1.aspx");
393 WebTest.CopyResource (GetType (), "FormViewTest1_2.aspx", "FormViewTest1_2.aspx");
394 WebTest.CopyResource (GetType (), "FormViewTest1_3.aspx", "FormViewTest1_3.aspx");
395 WebTest.CopyResource (GetType (), "FormViewTest1_4.aspx", "FormViewTest1_4.aspx");
396 WebTest.CopyResource (GetType (), "FormViewInsertEditDelete.aspx", "FormViewInsertEditDelete.aspx");
397 WebTest.CopyResource (GetType (), "FormViewPagerVisibility.aspx", "FormViewPagerVisibility.aspx");
401 public void Defaults ()
403 Poker p = new Poker ();
404 Assert.IsFalse (p.AllowPaging, "A1");
405 Assert.AreEqual ("", p.BackImageUrl, "A2");
406 Assert.IsNull (p.BottomPagerRow, "A3");
407 Assert.AreEqual ("", p.Caption, "A4");
408 Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A5");
409 Assert.AreEqual (-1, p.CellPadding, "A6");
410 Assert.AreEqual (0, p.CellSpacing, "A7");
411 Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A8");
412 Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A9");
413 Assert.IsNotNull (p.DataKeyNames, "A10");
414 Assert.AreEqual (0, p.DataKeyNames.Length, "A10.1");
415 Assert.IsNotNull (p.DataKey, "A11");
416 Assert.AreEqual (0, p.DataKey.Values.Count, "A11.1");
417 Assert.IsNull (p.EditItemTemplate, "A12");
418 Assert.IsNotNull (p.EditRowStyle, "A13");
419 Assert.IsNotNull (p.EmptyDataRowStyle, "A14");
420 Assert.IsNull (p.EmptyDataTemplate, "A15");
421 Assert.AreEqual ("", p.EmptyDataText, "A16");
422 Assert.IsNull (p.FooterRow, "A17");
423 Assert.IsNull (p.FooterTemplate, "A18");
424 Assert.AreEqual ("", p.FooterText, "A19");
425 Assert.IsNotNull (p.FooterStyle, "A20");
426 Assert.AreEqual (GridLines.None, p.GridLines, "A21");
427 Assert.IsNull (p.HeaderRow, "A22");
428 Assert.IsNotNull (p.HeaderStyle, "A23");
429 Assert.IsNull (p.HeaderTemplate, "A24");
430 Assert.AreEqual ("", p.HeaderText, "A25");
431 Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A26");
432 Assert.IsNull (p.InsertItemTemplate, "A27");
433 Assert.IsNotNull (p.InsertRowStyle, "A28");
434 Assert.IsNull (p.ItemTemplate, "A29");
435 Assert.AreEqual (0, p.PageCount, "A30");
436 Assert.AreEqual (0, p.PageIndex, "A31");
437 Assert.IsNull (p.PagerTemplate, "A32");
438 Assert.IsNull (p.Row, "A33");
439 Assert.IsNotNull (p.RowStyle, "A34");
440 Assert.IsNull (p.SelectedValue, "A35");
441 Assert.IsNull (p.TopPagerRow, "A36");
442 Assert.IsNull (p.DataItem, "A37");
443 Assert.AreEqual (0, p.DataItemCount, "A38");
444 Assert.AreEqual (0, p.DataItemIndex, "A39");
448 public void FormView_AssignToDefaultProperties ()
450 Poker p = new Poker ();
451 MyTemplate customTemplate = new MyTemplate ();
452 TableItemStyle tableStyle = new TableItemStyle ();
453 p.AllowPaging = true;
454 Assert.AreEqual (true, p.AllowPaging, "A40");
455 p.BackImageUrl = "image.jpg";
456 Assert.AreEqual ("image.jpg", p.BackImageUrl, "A41");
457 // ToDo: p.BottomPagerRow
458 p.Caption = "Employee Details";
459 Assert.AreEqual ("Employee Details", p.Caption, "A42");
460 p.CaptionAlign = TableCaptionAlign.Bottom;
461 Assert.AreEqual (TableCaptionAlign.Bottom, p.CaptionAlign, "A43");
462 p.CaptionAlign = TableCaptionAlign.Left;
463 Assert.AreEqual (TableCaptionAlign.Left, p.CaptionAlign, "A44");
464 p.CaptionAlign = TableCaptionAlign.NotSet;
465 Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A45");
466 p.CaptionAlign = TableCaptionAlign.Right;
467 Assert.AreEqual (TableCaptionAlign.Right, p.CaptionAlign, "A46");
468 p.CaptionAlign = TableCaptionAlign.Top;
469 Assert.AreEqual (TableCaptionAlign.Top, p.CaptionAlign, "A47");
471 Assert.AreEqual (10, p.CellPadding, "A48");
473 Assert.AreEqual (20, p.CellSpacing, "A49");
474 Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A52");
475 p.DefaultMode = FormViewMode.Edit;
476 Assert.AreEqual (FormViewMode.Edit, p.DefaultMode, "A53");
477 p.DefaultMode = FormViewMode.Insert;
478 Assert.AreEqual (FormViewMode.Insert, p.DefaultMode, "A54");
479 p.DefaultMode = FormViewMode.ReadOnly;
480 Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A55");
481 p.EditRowStyle.BackColor = Color.Red;
482 Assert.AreEqual (Color.Red, p.EditRowStyle.BackColor, "A56");
483 p.EmptyDataRowStyle.ForeColor = Color.Purple;
484 Assert.AreEqual (Color.Purple, p.EmptyDataRowStyle.ForeColor, "A57");
485 p.EmptyDataTemplate = customTemplate;
486 Assert.AreEqual (customTemplate, p.EmptyDataTemplate, "A58");
487 p.EmptyDataText = "No data";
488 Assert.AreEqual ("No data", p.EmptyDataText, "A59");
489 p.EditItemTemplate = customTemplate;
490 Assert.AreEqual (customTemplate, p.EditItemTemplate, "A60");
491 p.FooterTemplate = customTemplate;
492 Assert.AreEqual (customTemplate, p.FooterTemplate, "A61");
493 p.FooterText = "Test Footer";
494 Assert.AreEqual ("Test Footer", p.FooterText, "A62");
495 p.FooterStyle.BorderStyle = BorderStyle.Double;
496 Assert.AreEqual (BorderStyle.Double, p.FooterStyle.BorderStyle, "A63");
497 p.GridLines = GridLines.Both;
498 Assert.AreEqual (GridLines.Both, p.GridLines, "A64");
499 p.GridLines = GridLines.Horizontal;
500 Assert.AreEqual (GridLines.Horizontal, p.GridLines, "A65");
501 p.GridLines = GridLines.None;
502 Assert.AreEqual (GridLines.None, p.GridLines, "A66");
503 p.GridLines = GridLines.Vertical;
504 Assert.AreEqual (GridLines.Vertical, p.GridLines, "A67");
505 p.HeaderStyle.HorizontalAlign = HorizontalAlign.Left;
506 Assert.AreEqual (HorizontalAlign.Left, p.HeaderStyle.HorizontalAlign, "A68");
507 p.HeaderTemplate = customTemplate;
508 Assert.AreEqual (customTemplate, p.HeaderTemplate, "A69");
509 p.HeaderText = "Test Header";
510 Assert.AreEqual ("Test Header", p.HeaderText, "A70");
511 p.HorizontalAlign = HorizontalAlign.Center;
512 Assert.AreEqual (HorizontalAlign.Center, p.HorizontalAlign, "A71");
513 p.HorizontalAlign = HorizontalAlign.Justify;
514 Assert.AreEqual (HorizontalAlign.Justify, p.HorizontalAlign, "A72");
515 p.HorizontalAlign = HorizontalAlign.Left;
516 Assert.AreEqual (HorizontalAlign.Left, p.HorizontalAlign, "A73");
517 p.HorizontalAlign = HorizontalAlign.NotSet;
518 Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A74");
519 p.HorizontalAlign = HorizontalAlign.Right;
520 Assert.AreEqual (HorizontalAlign.Right, p.HorizontalAlign, "A75");
521 p.InsertItemTemplate = customTemplate;
522 Assert.AreEqual (customTemplate, p.InsertItemTemplate, "A76");
523 p.InsertRowStyle.BorderStyle = BorderStyle.Outset;
524 Assert.AreEqual (BorderStyle.Outset, p.InsertRowStyle.BorderStyle, "A77");
525 p.ItemTemplate = customTemplate;
526 Assert.AreEqual (customTemplate, p.ItemTemplate, "A78");
527 p.PagerSettings.FirstPageText = "PagerSettings Test";
528 Assert.AreEqual ("PagerSettings Test", p.PagerSettings.FirstPageText, "A79");
529 p.PagerStyle.BorderStyle = BorderStyle.Groove;
530 Assert.AreEqual (BorderStyle.Groove, p.PagerStyle.BorderStyle, "A80");
531 p.PagerTemplate = customTemplate;
532 Assert.AreEqual (customTemplate, p.PagerTemplate, "A81");
533 p.RowStyle.ForeColor = Color.Plum;
534 Assert.AreEqual (Color.Plum, p.RowStyle.ForeColor, "A82");
538 public void FormView_PageIndex ()
540 Poker p = new Poker ();
541 Assert.AreEqual (0, p.PageIndex, "#00");
542 Assert.AreEqual (false, p.GetInitialized (), "#01");
543 Assert.AreEqual (false, p.GetRequiresDataBinding(), "#02");
545 Assert.AreEqual (2, p.PageIndex, "#03");
546 Assert.AreEqual (false, p.GetRequiresDataBinding (), "#04");
548 Assert.AreEqual (2, p.PageIndex, "#05");
549 Assert.AreEqual (false, p.GetRequiresDataBinding (), "#06");
553 [Category ("NunitWeb")]
554 public void FormView_PageIndex2 ()
556 PageDelegates delegates = new PageDelegates ();
557 delegates.Load = FormView_PageIndex2_load;
558 delegates.LoadComplete = FormView_PageIndex2_loadComplete;
559 PageInvoker invoker = new PageInvoker (delegates);
560 WebTest test = new WebTest (invoker);
564 public static void FormView_PageIndex2_load (Page p)
566 Poker fv = new Poker ();
567 p.Form.Controls.Add (fv);
568 Assert.AreEqual (0, fv.PageIndex, "#00");
569 Assert.AreEqual (false, fv.GetInitialized (), "#01");
570 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#02");
572 Assert.AreEqual (2, fv.PageIndex, "#03");
573 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#04");
575 Assert.AreEqual (2, fv.PageIndex, "#05");
576 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#06");
579 public static void FormView_PageIndex2_loadComplete (Page p)
581 Poker fv = new Poker ();
582 p.Form.Controls.Add (fv);
583 Assert.AreEqual (0, fv.PageIndex, "#100");
584 Assert.AreEqual (true, fv.GetInitialized (), "#101");
585 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#102");
587 Assert.AreEqual (2, fv.PageIndex, "#103");
588 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#104");
590 Assert.AreEqual (2, fv.PageIndex, "#105");
591 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#106");
595 [ExpectedException (typeof (ArgumentOutOfRangeException))]
596 public void FormView_PageIndex_Ex ()
598 Poker p = new Poker ();
603 public void FormView_ItemsProperties ()
605 Poker p = new Poker ();
606 p.Page = new Page ();
607 p.AllowPaging = true;
610 //Assert.AreEqual (typeof (FormViewPagerRow), (p.BottomPagerRow).GetType (), "BottomPagerRow1");
611 Assert.AreEqual (0, p.BottomPagerRow.ItemIndex, "BottomPagerRow2");
612 Assert.AreEqual (DataControlRowType.Pager, p.BottomPagerRow.RowType, "BottomPagerRow2");
613 Assert.AreEqual ("Item1", p.DataItem, "DataItem");
614 Assert.AreEqual (6, p.DataItemCount, "DataItemCount");
615 Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
616 Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
617 string[] str = new string[] { "1", "2", "3", "4", "5", "6" };
618 Assert.AreEqual (typeof (DataKey), p.DataKey.GetType (), "DataKey");
619 p.DataKeyNames = str;
620 Assert.AreEqual (str, p.DataKeyNames, "DataKeyNames");
621 p.ChangeMode (FormViewMode.Edit);
622 Assert.AreEqual (FormViewMode.Edit, p.CurrentMode, "CurrentModeEdit");
623 p.ChangeMode (FormViewMode.Insert);
624 Assert.AreEqual (FormViewMode.Insert, p.CurrentMode, "CurrentModeInsert");
629 public void FormView_DefaultProtectedProperties ()
631 Poker fv = new Poker ();
632 Assert.AreEqual (HtmlTextWriterTag.Table, fv.PokerTagKey, "TagKey");
638 public void FormView_CreateChildControls ()
640 Poker fv = new Poker ();
641 fv.DataSource = myds;
642 fv.Page = new Page ();
643 Assert.AreEqual (6, fv.DoCreateChildControls (myds, true), "CreateChildControlFromDS");
645 Assert.AreEqual (7, fv.DoCreateChildControls (myds, false), "CreateChildControlFromViewState");
646 myds.Remove ("item7");
650 class MyEnumSource : IEnumerable
654 public MyEnumSource (int count) {
658 #region IEnumerable Members
660 public IEnumerator GetEnumerator () {
662 for (int i = 0; i < _count; i++)
670 public void FormView_CreateChildControls2 ()
672 Poker fv = new Poker ();
673 fv.Page = new Page ();
674 fv.DataSource = new MyEnumSource (20);
677 Assert.AreEqual (20, fv.PageCount, "CreateChildControls#0");
679 Assert.AreEqual (0, fv.DoCreateChildControls (new MyEnumSource (0), true), "CreateChildControls#1");
680 Assert.AreEqual (20, fv.DoCreateChildControls (new MyEnumSource (20), true), "CreateChildControls#2");
682 Assert.AreEqual (0, fv.DoCreateChildControls (new object [0], false), "CreateChildControls#3");
683 Assert.AreEqual (5, fv.DoCreateChildControls (new object [5], false), "CreateChildControls#4");
687 public void FormView_CreateDataSourceSelectArguments ()
689 //Checks the default DataSourceSelectArgument object returned.
690 Poker fv = new Poker ();
691 DataSourceSelectArguments selectArgs = fv.DoCreateDataSourceSelectArguments ();
692 Assert.AreEqual (0, selectArgs.MaximumRows, "CreateDataSourceSelectArguments1");
693 Assert.AreEqual (false, selectArgs.RetrieveTotalRowCount, "CreateDataSourceSelectArguments2");
698 public void FormView_CreateControlStyle ()
700 Poker fv = new Poker ();
701 Style s = fv.DoCreateControlStyle ();
702 Assert.AreEqual (typeof (TableStyle), s.GetType (), "CreateControlStyle1");
703 Assert.AreEqual (GridLines.None, ((TableStyle) s).GridLines, "CreateControlStyle2");
704 Assert.AreEqual ("", ((TableStyle) s).BackImageUrl, "CreateControlStyle3");
705 Assert.AreEqual (0, ((TableStyle) s).CellSpacing, "CreateControlStyle4");
706 Assert.AreEqual (-1, ((TableStyle) s).CellPadding, "CreateControlStyle5");
711 public void FormView_InitializeRow ()
717 public void FormView_InitializePager ()
719 Poker fv = new Poker ();
720 Page page = new Page ();
721 page.Controls.Add (fv);
722 fv.AllowPaging = true;
723 fv.DataSource = myds;
724 Assert.AreEqual (false, fv.isInitializePager, "BeforeInitializePager");
725 Assert.AreEqual (0, fv.PageCount, "BeforeInitializePagerPageCount");
727 Assert.AreEqual (true, fv.isInitializePager, "AfterInitializePager");
728 Assert.AreEqual (6, fv.PageCount, "AfterInitializePagerPageCount");
732 public void FormView_CreateRow ()
734 Poker fv = new Poker ();
735 fv.AllowPaging =true;
736 fv.DataSource = myds;
737 fv.Page = new Page ();
739 FormViewRow row = fv.DoCreateRow (2,DataControlRowType.DataRow ,DataControlRowState.Normal );
740 Assert.AreEqual (2, row.ItemIndex, "CreatedRowItemIndex1");
741 Assert.AreEqual (DataControlRowState.Normal , row.RowState, "CreatedRowState1");
742 Assert.AreEqual (DataControlRowType.DataRow , row.RowType, "CreatedRowType1");
743 row = fv.DoCreateRow (4, DataControlRowType.Footer, DataControlRowState.Edit);
744 Assert.AreEqual (4, row.ItemIndex, "CreatedRowItemIndex2");
745 Assert.AreEqual (DataControlRowState.Edit , row.RowState, "CreatedRowState2");
746 Assert.AreEqual (DataControlRowType.Footer , row.RowType, "CreatedRowType2");
747 //FormViewPagerRow pagerRow = (FormViewPagerRow)fv.DoCreateRow (3, DataControlRowType.Pager , DataControlRowState.Insert);
748 //Assert.AreEqual (3, pagerRow.ItemIndex, "CreatedPageRowItemIndex");
749 //Assert.AreEqual (DataControlRowState.Insert, pagerRow.RowState, "CreatedPageRowState");
750 //Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "CreatedPageRowType");
755 public void FormView_CreateTable ()
757 Poker fv = new Poker ();
758 Table tb = fv.DoCreateTable ();
759 fv.Page = new Page ();
760 Assert.AreEqual ("", tb.BackImageUrl , "CreateTable1");
761 Assert.AreEqual (0, tb.Rows.Count, "CreateTable2");
762 fv.DataSource = myds;
764 fv.ID = "TestFormView";
765 tb = fv.DoCreateTable ();
766 Assert.AreEqual (-1, tb.CellPadding , "CreateTable3");
771 public void FormView_EnsureDataBound ()
773 Poker fv = new Poker ();
774 fv.DataSource = myds;
775 fv.DoOnPreRender (EventArgs.Empty);
776 Assert.AreEqual (true, fv.ensureDataBound, "EnsureDataBound");
781 public void FormView_PerformDataBinding ()
783 Poker fv = new Poker ();
784 fv.Page = new Page ();
785 Assert.AreEqual (0,fv.DataItemCount, "BeforePerformDataBinding");
786 fv.DoPerformDataBinding (myds);
787 Assert.AreEqual (6, fv.DataItemCount, "AfterPerformDataBinding");
791 public void FormView_ExtractRowValues ()
793 Poker fv=new Poker ();
794 fv.ItemTemplate = new MyTemplate ();
795 fv.DataKeyNames = new string[] { "ID", "FName", "LName" };
796 //IOrderedDictionary dict = (IOrderedDictionary) new OrderedDictionary (0x19);
797 //fv.DoExtractRowValues (dict, true);
798 //DataTable ds = CreateDataTable ();
799 //fv.DataSource = ds;
801 //OrderedDictionary fieldsValues = new OrderedDictionary ();
802 //fv.DoExtractRowValues (fieldsValues, true);
803 //Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
804 //Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
805 //Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
806 //Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
807 //IDictionaryEnumerator enumerator = fieldsValues.GetEnumerator ();
808 //enumerator.MoveNext ();
809 //Assert.AreEqual ("ID", enumerator.Key, "FieldValue1");
810 //Assert.AreEqual ("1001", enumerator.Value, "FieldValue2");
811 //enumerator.MoveNext ();
812 //Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
813 //Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
814 //enumerator.MoveNext ();
815 //Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
816 //Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
821 public void FormView_PrepareControlHierarchy ()
823 Poker fv = new Poker ();
824 fv.Page = new Page ();
825 fv.controlHierarchy = false;
827 Assert.AreEqual (0, fv.Controls.Count, "ControlHierarchy1");
828 Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy2");
829 fv.AllowPaging = true;
830 fv.DataSource = myds;
832 fv.controlHierarchy = false;
834 Assert.AreEqual (1, fv.Controls.Count, "ControlHierarchy3");
835 Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy4");
843 public void FormView_ChangeMode ()
845 Poker fv = new Poker ();
846 Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeDefault");
847 fv.ChangeMode (FormViewMode.Insert);
848 Assert.AreEqual (FormViewMode.Insert, fv.CurrentMode, "ChangeModeInsert");
849 fv.ChangeMode (FormViewMode.Edit);
850 Assert.AreEqual (FormViewMode.Edit, fv.CurrentMode, "ChangeModeEdit");
851 fv.ChangeMode (FormViewMode.ReadOnly);
852 Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeReadOnly");
856 public void FormView_PageCount () {
857 Page p = new Page ();
859 Poker fv = new Poker ();
862 ObjectDataSource data = new ObjectDataSource ();
863 data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
864 data.SelectMethod = "Select";
865 p.Controls.Add (data);
867 fv.DataSource = data;
869 Assert.AreEqual (0, fv.PageCount, "PageCount before binding");
873 Assert.AreEqual (3, fv.PageCount, "PageCount after binding");
877 public void FormView_DataKey ()
879 Page p = new Page ();
881 Poker fv = new Poker ();
884 ObjectDataSource data = new ObjectDataSource ();
885 data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
886 data.SelectMethod = "Select";
887 p.Controls.Add (data);
889 fv.DataSource = data;
890 fv.DataKeyNames = new string [] { "ID", "FName" };
892 DataKey key1 = fv.DataKey;
894 Assert.AreEqual (null, key1.Value, "DataKey.Value before binding");
895 Assert.AreEqual (0, key1.Values.Count, "DataKey.Values count before binding");
899 DataKey key2 = fv.DataKey;
900 DataKey key3 = fv.DataKey;
902 Assert.IsFalse (Object.ReferenceEquals (key1, key2), "DataKey returns the same instans");
903 Assert.IsTrue (Object.ReferenceEquals (key2, key3), "DataKey returns the same instans");
905 Assert.AreEqual (1001, key1.Value, "DataKey.Value after binding");
906 Assert.AreEqual (2, key1.Values.Count, "DataKey.Values count after binding");
907 Assert.AreEqual (1001, key1.Values [0], "DataKey.Values[0] after binding");
908 Assert.AreEqual ("Mahesh", key1.Values [1], "DataKey.Values[1] after binding");
910 Poker copy = new Poker ();
911 object state = fv.DoSaveControlState ();
912 copy.DoLoadControlState (state);
914 DataKey key4 = copy.DataKey;
916 Assert.AreEqual (1001, key4.Value, "DataKey.Value from ViewState");
917 Assert.AreEqual (2, key4.Values.Count, "DataKey.Values count from ViewState");
918 Assert.AreEqual (1001, key4.Values [0], "DataKey.Values[0] from ViewState");
919 Assert.AreEqual ("Mahesh", key4.Values [1], "DataKey.Values[1] from ViewState");
923 public void FormView_DataBind ()
925 Poker fv = new Poker ();
926 fv.AllowPaging = true;
927 fv.DataSource = myds;
928 fv.Page = new Page ();
929 Assert.AreEqual (0, fv.PageCount, "BeforeDataBind1");
930 Assert.AreEqual (null, fv.DataItem, "BeforeDataBind2");
932 Assert.AreEqual (6, fv.PageCount, "AfterDataBind1");
933 Assert.AreEqual (6, fv.DataItemCount, "AfterDataBind2");
934 Assert.AreEqual ("Item1", fv.DataItem, "AfterDataBind3");
937 private bool isDeleted = false;
940 public void FormView_DeleteItem ()
942 Poker fv = new Poker ();
943 fv.Page = new Page ();
944 fv.DataSource = myds;
946 Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
947 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_DeleteingHandler);
949 Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
953 public void fv_DeleteingHandler (Object sender, FormViewDeleteEventArgs e)
958 private bool insertItem = false;
961 public void FormView_InsertItem ()
963 Poker fv = new Poker ();
964 fv.Page = new Page ();
965 fv.ChangeMode (FormViewMode.Insert);
966 fv.ItemInserting += new FormViewInsertEventHandler (insert_item);
967 Assert.AreEqual (false, insertItem, "BeforeInsertItem");
968 fv.InsertItem (false);
969 Assert.AreEqual (true, insertItem, "AfterInsertItem");
973 public void insert_item (object sender, FormViewInsertEventArgs e)
978 private bool updateItem = false;
980 public void FormView_UpdateItem ()
982 Poker fv = new Poker ();
983 fv.Page = new Page ();
984 fv.DataSource = myds;
986 fv.ChangeMode (FormViewMode.Edit);
987 fv.ItemUpdating += new FormViewUpdateEventHandler (update_item);
988 Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
989 fv.UpdateItem (false);
990 Assert.AreEqual (true, updateItem, "AfterUpdateItem");
994 public void update_item (object sender, FormViewUpdateEventArgs e)
1000 public void FormView_IsBindableType ()
1002 bool isBindable = false;
1003 Poker fv = new Poker ();
1004 isBindable = fv.IsBindableType (typeof (Decimal));
1005 Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
1006 isBindable = fv.IsBindableType (typeof (Int32));
1007 Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
1008 isBindable = fv.IsBindableType (typeof (String));
1009 Assert.AreEqual (true, isBindable, "IsBindableTypeString");
1010 isBindable = fv.IsBindableType (typeof (Boolean));
1011 Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
1012 isBindable = fv.IsBindableType (typeof (DateTime));
1013 Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
1014 isBindable = fv.IsBindableType (typeof (Byte));
1015 Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
1016 isBindable = fv.IsBindableType (typeof (Guid));
1017 Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
1018 isBindable = fv.IsBindableType (typeof (MyTemplate));
1019 Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
1023 public void FormView_ControlState () {
1025 Poker fv = new Poker ();
1026 Poker copy = new Poker ();
1027 string[] keys = new String[2];
1030 fv.DataKeyNames = keys;
1031 fv.BackImageUrl = "photo.jpg";
1032 fv.DefaultMode = FormViewMode.Insert ;
1033 fv.ChangeMode (FormViewMode.Edit);
1034 object state = fv.DoSaveControlState ();
1035 copy.DoLoadControlState (state);
1036 Assert.AreEqual (2, copy.DataKeyNames.Length, "DataKeyNames.Length");
1037 Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
1038 Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
1039 Assert.AreEqual (FormViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
1040 Assert.AreEqual (FormViewMode.Edit, copy.CurrentMode, "ControlStateCurrentMode");
1046 public void FormView_ViewState ()
1048 Poker fv = new Poker ();
1049 Poker copy = new Poker ();
1050 fv.AllowPaging = true;
1051 fv.HeaderText = "Testing";
1052 fv.CssClass = "style.css";
1053 object state = fv.SaveState ();
1054 copy.LoadState (state);
1055 Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");
1056 Assert.AreEqual ("Testing", copy.HeaderText, "ViewStateHeaderText");
1057 Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
1062 private bool itemCommand;
1063 private bool itemCreated;
1064 private bool itemDeleted;
1065 private bool itemDeleting;
1066 private bool itemInserted;
1067 private bool itemInserting;
1068 private bool itemUpdated;
1069 private bool itemUpdating;
1070 private bool modeChanged;
1071 private bool modeChanging;
1072 private bool pageIndexChanged;
1073 private bool pageIndexChanging;
1074 private int newPageIndex;
1076 public void ResetEvents ()
1079 itemCommand = false;
1080 itemCreated = false;
1081 itemDeleted = false;
1082 itemDeleting = false;
1083 itemInserted = false;
1084 itemInserting = false;
1085 itemUpdated = false;
1086 itemUpdating = false;
1087 modeChanged = false;
1088 modeChanging = false;
1089 pageIndexChanged = false;
1090 pageIndexChanging = false;
1094 public void FormView_BubbleEvent ()
1096 FormViewCommandEventArgs com;
1097 Poker fv = new Poker ();
1098 Page page = new Page ();
1099 Button bt = new Button ();
1100 fv.AllowPaging = true;
1101 fv.DataSource = myds;
1102 page.Controls.Add (fv);
1105 fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
1106 fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
1108 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
1109 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
1110 Assert.AreEqual (false, itemDeleting, "BeforeDeleteCommandBubbleEvent");
1111 Assert.AreEqual (false, itemCommand, "BeforeDeleteBubbleEvent");
1112 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Delete");
1113 Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
1114 Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
1118 itemCommand = false;
1119 fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
1120 fv.ChangeMode (FormViewMode.Insert);
1121 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
1122 Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
1123 Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
1124 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Insert");
1125 Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
1126 Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
1130 itemCommand = false;
1131 fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
1132 fv.ChangeMode (FormViewMode.Edit);
1133 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
1134 Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
1135 Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
1136 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Update");
1137 Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
1138 Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
1142 itemCommand = false;
1143 fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
1144 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
1145 Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
1146 Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
1147 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Cancel");
1148 Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
1149 Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
1152 itemCommand = false;
1153 modeChanging = false;
1154 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
1155 Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
1156 Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
1157 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Edit");
1158 Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
1159 Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
1162 itemCommand = false;
1163 modeChanging = false;
1164 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
1165 Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
1166 Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
1167 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - New");
1168 Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
1169 Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
1171 //Page Index default
1172 itemCommand = false;
1173 fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
1174 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
1175 Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
1176 Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
1177 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Page Index default");
1178 Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
1179 Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
1180 Assert.AreEqual (-1, newPageIndex, "PageIndex");
1183 itemCommand = false;
1184 pageIndexChanging = false;
1185 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
1186 Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
1187 Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
1188 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Next Page");
1189 Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
1190 Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
1191 Assert.AreEqual (1, newPageIndex, "NextPageIndex");
1194 itemCommand = false;
1195 pageIndexChanging = false;
1196 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
1197 Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
1198 Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
1199 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Prev Page");
1200 Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
1201 Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
1202 Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
1205 itemCommand = false;
1206 pageIndexChanging = false;
1207 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
1208 Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
1209 Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
1210 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - First Page");
1211 Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
1212 Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
1213 Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
1216 itemCommand = false;
1217 pageIndexChanging = false;
1218 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
1219 Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
1220 Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
1221 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Last Page");
1222 Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
1223 Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
1224 Assert.AreEqual (5, newPageIndex, "FirstPageIndex");
1229 [Category("NunitWeb")]
1230 public void FormView_DataSourceChangedEvent ()
1232 WebTest t = new WebTest();
1233 PageDelegates pd = new PageDelegates ();
1234 pd.Load = FormView_Init;
1235 pd.PreRenderComplete = FormView_Load;
1236 t.Invoker = new PageInvoker (pd);
1238 FormRequest fr = new FormRequest (t.Response, "form1");
1239 fr.Controls.Add ("__EVENTTARGET");
1240 fr.Controls.Add ("__EVENTARGUMENT");
1241 fr.Controls["__EVENTTARGET"].Value = "";
1242 fr.Controls["__EVENTARGUMENT"].Value = "";
1245 if (t.UserData == null)
1246 Assert.Fail ("DataSourceChangedEvent#1");
1247 Assert.AreEqual ("Data_rebounded", t.UserData.ToString (), "DataSourceChangedEvent#2");
1250 #region FormView_DataSourceChangedEvent
1251 public static void FormView_Init(Page p)
1253 Poker fv = new Poker ();
1254 DS data = new DS ();
1255 p.Controls.Add (fv);
1256 p.Controls.Add (data);
1257 data.TypeName = typeof (DS).AssemblyQualifiedName;
1258 data.SelectMethod = "GetList";
1260 fv.DataBinding += new EventHandler (data_DataBinding);
1261 fv.DataSourceID = "Data";
1264 public static void FormView_Load (Page p)
1267 DS data = (DS) p.FindControl ("Data") ;
1269 Assert.Fail ("Data soource control not created#1");
1270 data.DoRaiseDataSourceChangedEvent (new EventArgs ());
1274 public static void data_DataBinding (object sender, EventArgs e)
1276 if (((WebControl) sender).Page.IsPostBack)
1277 WebTest.CurrentTest.UserData = "Data_rebounded";
1282 public void FormView_Events ()
1285 Poker fv = new Poker ();
1286 fv.Page = new Page ();
1287 fv.Init += new EventHandler (fv_Init);
1288 fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
1289 fv.ItemCreated += new EventHandler (fv_ItemCreated);
1290 fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
1291 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
1292 fv.ItemInserted += new FormViewInsertedEventHandler (fv_ItemInserted);
1293 fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
1294 fv.ItemUpdated += new FormViewUpdatedEventHandler (fv_ItemUpdated);
1295 fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
1296 fv.ModeChanged += new EventHandler (fv_ModeChanged);
1297 fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
1298 fv.PageIndexChanged += new EventHandler (fv_PageIndexChanged);
1299 fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
1301 Assert.AreEqual (false, init, "BeforeInit");
1302 fv.DoOnInit (new EventArgs ());
1303 Assert.AreEqual (true, init, "AfterInit");
1304 Assert.AreEqual (false, itemCommand, "BeforeItemCommandEvent");
1305 Button bt = new Button ();
1306 fv.DoOnItemCommand (new FormViewCommandEventArgs (bt, new CommandEventArgs ("", null)));
1307 Assert.AreEqual (true, itemCommand, "AfterItemCommandEvent");
1308 Assert.AreEqual (false, itemCreated, "BeforeItemCreatedEvent");
1309 fv.DoOnItemCreated (new EventArgs ());
1310 Assert.AreEqual (true, itemCreated, "AfterItemCreatedEvent");
1311 Assert.AreEqual (false, itemDeleted, "BeforeItemDeletedEvent");
1312 fv.DoOnItemDeleted (new FormViewDeletedEventArgs (3, new Exception ()));
1313 Assert.AreEqual (true, itemDeleted, "AfterItemDeletedEvent");
1314 Assert.AreEqual (false, itemDeleting, "BeforeItemDeletingEvent");
1315 fv.DoOnItemDeleting (new FormViewDeleteEventArgs (1));
1316 Assert.AreEqual (true, itemDeleting, "AfterItemDeletingEvent");
1317 Assert.AreEqual (false, itemInserted, "BeforeItemInsertedEvent");
1318 fv.DoOnItemInserted (new FormViewInsertedEventArgs (2, new Exception ()));
1319 Assert.AreEqual (true, itemInserted, "AfterItemInsetedEvent");
1320 Assert.AreEqual (false, itemInserting, "BeforeItemInsertingEvent");
1321 fv.DoOnItemInserting (new FormViewInsertEventArgs (bt));
1322 Assert.AreEqual (true, itemInserting, "AfterItemInsetingEvent");
1323 Assert.AreEqual (false, itemUpdated, "BeforeItemUpdatedEvent");
1324 fv.DoOnItemUpdated (new FormViewUpdatedEventArgs (1, new Exception ()));
1325 Assert.AreEqual (true, itemUpdated, "AfterItemUpdatedEvent");
1326 Assert.AreEqual (false, itemUpdating, "BeforeItemUpdatingEvent");
1327 fv.DoOnItemUpdating (new FormViewUpdateEventArgs (bt));
1328 Assert.AreEqual (true, itemUpdating, "AfterItemUpdatingEvent");
1329 Assert.AreEqual (false, modeChanged, "BeforeModeChangedEvent");
1330 fv.DoOnModeChanged (new EventArgs ());
1331 Assert.AreEqual (true, modeChanged, "AfterModeChangedEvent");
1332 Assert.AreEqual (false, modeChanging, "BeforeModeChangingEvent");
1333 fv.DoOnModeChanging (new FormViewModeEventArgs (FormViewMode.Edit, true));
1334 Assert.AreEqual (true, modeChanging, "AfterModeChangingEvent");
1335 Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChangedEvent");
1336 fv.DoOnPageIndexChanged (new EventArgs ());
1337 Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChangedEvent");
1338 Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChangingEvent");
1339 fv.DoOnPageIndexChanging (new FormViewPageEventArgs (1));
1340 Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChangingEvent");
1342 private void fv_Init (object sender, EventArgs e)
1347 private void fv_ItemCommand (object sender, FormViewCommandEventArgs e)
1352 private void fv_ItemCreated (object sender, EventArgs e)
1357 private void fv_ItemDeleted (object sender, FormViewDeletedEventArgs e)
1362 private void fv_ItemDeleting (object sender, FormViewDeleteEventArgs e)
1364 itemDeleting = true;
1367 private void fv_ItemInserted (object sender, FormViewInsertedEventArgs e)
1369 itemInserted = true;
1372 private void fv_ItemInserting (object sender, FormViewInsertEventArgs e)
1374 itemInserting = true;
1377 private void fv_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
1382 private void fv_ItemUpdating (object sender, FormViewUpdateEventArgs e)
1384 itemUpdating = true;
1387 private void fv_ModeChanged (object sender, EventArgs e)
1392 private void fv_ModeChanging (object sender, FormViewModeEventArgs e)
1394 modeChanging = true;
1397 private void fv_PageIndexChanged (object sender, EventArgs e)
1399 pageIndexChanged = true;
1401 private void fv_PageIndexChanging (object sender, FormViewPageEventArgs e)
1403 pageIndexChanging = true;
1404 newPageIndex = e.NewPageIndex;
1405 e.NewPageIndex = -1;
1410 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1411 public void CellPaddingException ()
1413 Poker p = new Poker ();
1418 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1419 public void CellSpacingException ()
1421 Poker p = new Poker ();
1426 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1427 public void PageIndexException ()
1429 Poker p = new Poker ();
1434 [ExpectedException (typeof (HttpException))]
1435 public void InsertItemException ()
1437 Poker p = new Poker ();
1438 p.InsertItem (true);
1442 [ExpectedException (typeof (HttpException))]
1443 public void UpdateItemException ()
1445 Poker p = new Poker ();
1446 p.UpdateItem (true);
1451 [Category ("NotDotNet")] //TODO
1452 public void PageIndex ()
1454 ObjectDataSource ds = new ObjectDataSource ();
1455 ds.ID = "ObjectDataSource1";
1456 ds.TypeName = "System.Guid";
1457 ds.SelectMethod = "ToByteArray";
1458 Page p = new Page ();
1459 Poker f = new Poker ();
1463 p.Controls.Add (ds);
1464 f.DataSourceID = "ObjectDataSource1";
1465 f.DoConfirmInitState ();
1466 f.DoOnPreRender (EventArgs.Empty);
1467 object cur = f.DataItem;
1469 Assert.IsTrue (cur != f.DataItem, "#01");
1471 CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
1472 FormViewCommandEventArgs fvargs = new FormViewCommandEventArgs (f, cargs);
1473 f.DoOnBubbleEvent (f, fvargs);
1474 Assert.IsTrue (f.OnPageIndexChangingCalled, "#02");
1475 Assert.IsTrue (f.OnPageIndexChangedCalled, "#03");
1476 f.OnPageIndexChangingCalled = false;
1477 f.OnPageIndexChangedCalled = false;
1479 f.DoOnBubbleEvent (f, fvargs);
1480 Assert.IsTrue (f.OnPageIndexChangingCalled, "#04");
1481 Assert.IsFalse (f.OnPageIndexChangedCalled, "#05");
1482 f.OnPageIndexChangingCalled = false;
1483 f.OnPageIndexChangedCalled = false;
1485 f.PageIndex = f.PageCount - 1;
1486 cargs = new CommandEventArgs ("Page", "Next");
1487 fvargs = new FormViewCommandEventArgs (f, cargs);
1488 f.DoOnBubbleEvent (f, fvargs);
1489 Assert.IsTrue (f.OnPageIndexChangingCalled, "#06");
1490 Assert.IsFalse (f.OnPageIndexChangedCalled, "#07");
1491 f.OnPageIndexChangingCalled = false;
1492 f.OnPageIndexChangedCalled = false;
1496 public void PageCount ()
1498 ObjectDataSource ds = new ObjectDataSource ();
1499 ds.ID = "ObjectDataSource1";
1500 ds.TypeName = "System.Guid";
1501 ds.SelectMethod = "ToByteArray";
1502 Page p = new Page ();
1503 Poker f = new Poker ();
1507 p.Controls.Add (ds);
1508 f.DataSourceID = "ObjectDataSource1";
1509 f.DoConfirmInitState ();
1510 f.DoOnPreRender (EventArgs.Empty);
1512 Assert.AreEqual (16, f.PageCount, "#01");
1516 public void InsertTemplate () {
1517 ObjectDataSource ds = new ObjectDataSource ();
1518 ds.ID = "ObjectDataSource1";
1519 ds.TypeName = "System.Collections.ArrayList";
1520 ds.SelectMethod = "ToArray";
1521 Page p = new Page ();
1522 Poker f = new Poker ();
1523 Template itemTemplate = new Template ();
1524 Template emptyTemplate = new Template ();
1525 Template insertTemplate = new Template ();
1526 f.ItemTemplate = itemTemplate;
1527 f.EmptyDataTemplate = emptyTemplate;
1528 f.InsertItemTemplate = insertTemplate;
1529 f.DefaultMode = FormViewMode.Insert;
1533 p.Controls.Add (ds);
1534 f.DataSourceID = "ObjectDataSource1";
1535 f.DoConfirmInitState ();
1536 f.DoOnPreRender (EventArgs.Empty);
1538 f.AllowPaging = true;
1539 Assert.IsFalse(itemTemplate.Instantiated, "#01");
1540 Assert.IsFalse(emptyTemplate.Instantiated, "#02");
1541 Assert.IsTrue(insertTemplate.Instantiated, "#03");
1544 [TestFixtureTearDown]
1545 public void TearDown ()
1551 [Category("NunitWeb")]
1552 public void FormViewCssClass ()
1554 string res = new WebTest ("FormView.aspx").Run ();
1555 Assert.IsTrue (Regex.IsMatch (
1556 res, ".*<table[^>]*class=\"[^\"]*test1[^\"]*\"[^>]*>.*",
1557 RegexOptions.IgnoreCase|RegexOptions.Singleline),
1558 "check that <table class=\"test1\"> is found. Actual: "+res);
1559 Assert.IsFalse (Regex.IsMatch (
1560 res, ".*<table[^>]*class=\"\"[^>]*>.*",
1561 RegexOptions.IgnoreCase|RegexOptions.Singleline),
1562 "check that <table class=\"\"> is not found. Actual: "+res);
1569 [Category ("NunitWeb")]
1570 public void FormView_RenderSimpleTemplate()
1572 string renderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1573 string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
1575 string origHtmlValue = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_Label1\">1</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:#8C4510;\">\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\" style=\"color:#8C4510;\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\" style=\"color:#8C4510;\">3</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$4')\" style=\"color:#8C4510;\">4</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$5')\" style=\"color:#8C4510;\">5</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$6')\" style=\"color:#8C4510;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1577 string origHtmlValue = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" border=\"1\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_Label1\">1</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:#8C4510;\">\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\" style=\"color:#8C4510;\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\" style=\"color:#8C4510;\">3</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$4')\" style=\"color:#8C4510;\">4</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$5')\" style=\"color:#8C4510;\">5</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$6')\" style=\"color:#8C4510;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1580 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderSimpleTemplate");
1584 [Category ("NunitWeb")]
1585 public void FormView_RenderFooterAndPager()
1587 string renderedPageHtml = new WebTest ("FormViewTest1_2.aspx").Run ();
1588 string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
1590 string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"4\" id=\"FormView2\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:#333333;background-color:#F7F6F3;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView2_Label2\">1</span>\n </td>\r\n\t</tr><tr style=\"color:White;background-color:#5D7B9D;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView2_Label3\">Footer Template Test</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:White;background-color:#284775;\">\r\n\t\t<td colspan=\"2\">\n <input type=\"submit\" name=\"FormView2$ctl01$Button1\" value=\"Prev Item\" id=\"FormView2_ctl01_Button1\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button2\" value=\"Next Item\" id=\"FormView2_ctl01_Button2\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button3\" value=\"First Item\" id=\"FormView2_ctl01_Button3\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button4\" value=\"Last Item\" id=\"FormView2_ctl01_Button4\" />\n </td>\r\n\t</tr>\r\n</table>";
1592 string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"FormView2\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:#333333;background-color:#F7F6F3;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView2_Label2\">1</span>\n </td>\r\n\t</tr><tr style=\"color:White;background-color:#5D7B9D;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView2_Label3\">Footer Template Test</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:White;background-color:#284775;\">\r\n\t\t<td colspan=\"2\">\n <input type=\"submit\" name=\"FormView2$ctl01$Button1\" value=\"Prev Item\" id=\"FormView2_ctl01_Button1\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button2\" value=\"Next Item\" id=\"FormView2_ctl01_Button2\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button3\" value=\"First Item\" id=\"FormView2_ctl01_Button3\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button4\" value=\"Last Item\" id=\"FormView2_ctl01_Button4\" />\n </td>\r\n\t</tr>\r\n</table>";
1594 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "FormView_RenderFooterAndPager");
1598 [Category ("NunitWeb")]
1599 public void FormView_RenderWithHeader()
1601 string renderedPageHtml = new WebTest ("FormViewTest1_4.aspx").Run ();
1602 string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
1604 string origHtmlValue = "<table cellspacing=\"10\" cellpadding=\"3\" align=\"Right\" rules=\"all\" id=\"FormView4\" style=\"background-color:White;border-color:#CCCCCC;border-width:1px;border-style:None;\">\r\n\t<tr align=\"left\" style=\"color:White;background-color:#006699;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">Using Header Text property</td>\r\n\t</tr><tr align=\"center\" style=\"color:#000066;background-color:Maroon;\">\r\n\t\t<td colspan=\"2\">Using Footer Text property</td>\r\n\t</tr><tr align=\"left\" style=\"color:#000066;background-color:LightGrey;\">\r\n\t\t<td colspan=\"2\">\n <a id=\"FormView4_ctl01_LinkButton1\" href=\"javascript:__doPostBack('FormView4$ctl01$LinkButton1','')\">Next</a>\n <a id=\"FormView4_ctl01_LinkButton2\" href=\"javascript:__doPostBack('FormView4$ctl01$LinkButton2','')\">Prev</a>\n <span id=\"FormView4_ctl01_Label7\">Page Index: 0</span>\n </td>\r\n\t</tr>\r\n</table>";
1606 string origHtmlValue = "<table cellspacing=\"10\" cellpadding=\"3\" align=\"Right\" rules=\"all\" border=\"1\" id=\"FormView4\" style=\"background-color:White;border-color:#CCCCCC;border-width:1px;border-style:None;\">\r\n\t<tr align=\"left\" style=\"color:White;background-color:#006699;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">Using Header Text property</td>\r\n\t</tr><tr align=\"center\" style=\"color:#000066;background-color:Maroon;\">\r\n\t\t<td colspan=\"2\">Using Footer Text property</td>\r\n\t</tr><tr align=\"left\" style=\"color:#000066;background-color:LightGrey;\">\r\n\t\t<td colspan=\"2\">\n <a id=\"FormView4_ctl01_LinkButton1\" href=\"javascript:__doPostBack('FormView4$ctl01$LinkButton1','')\">Next</a>\n <a id=\"FormView4_ctl01_LinkButton2\" href=\"javascript:__doPostBack('FormView4$ctl01$LinkButton2','')\">Prev</a>\n <span id=\"FormView4_ctl01_Label7\">Page Index: 0</span>\n </td>\r\n\t</tr>\r\n</table>";
1608 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
1613 [Category ("NunitWeb")]
1614 public void FormView_Render ()
1616 string RenderedPageHtml = new WebTest ("FormViewTest1_3.aspx").Run ();
1617 string newHtmlValue = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
1619 string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"2\" id=\"FormView3\" style=\"color:Black;background-color:LightGoldenrodYellow;border-color:Tan;border-width:1px;border-style:solid;border-collapse:collapse;\">\r\n\t<tr align=\"center\" valign=\"top\" style=\"color:#C00000;background-color:Tan;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label5\">Header Template Test</span>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label4\">1</span>\n </td>\r\n\t</tr><tr align=\"right\" style=\"color:#FFC0FF;background-color:Tan;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label6\">FormView Footer</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:DarkSlateBlue;background-color:PaleGoldenrod;\">\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView3','Page$2')\" style=\"color:DarkSlateBlue;\">2</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$3')\" style=\"color:DarkSlateBlue;\">3</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$4')\" style=\"color:DarkSlateBlue;\">4</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$5')\" style=\"color:DarkSlateBlue;\">5</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$6')\" style=\"color:DarkSlateBlue;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1621 string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" id=\"FormView3\" style=\"color:Black;background-color:LightGoldenrodYellow;border-color:Tan;border-width:1px;border-style:solid;border-collapse:collapse;\">\r\n\t<tr align=\"center\" valign=\"top\" style=\"color:#C00000;background-color:Tan;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label5\">Header Template Test</span>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label4\">1</span>\n </td>\r\n\t</tr><tr align=\"right\" style=\"color:#FFC0FF;background-color:Tan;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label6\">FormView Footer</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:DarkSlateBlue;background-color:PaleGoldenrod;\">\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView3','Page$2')\" style=\"color:DarkSlateBlue;\">2</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$3')\" style=\"color:DarkSlateBlue;\">3</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$4')\" style=\"color:DarkSlateBlue;\">4</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$5')\" style=\"color:DarkSlateBlue;\">5</a></td><td><a href=\"javascript:__doPostBack('FormView3','Page$6')\" style=\"color:DarkSlateBlue;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1623 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
1628 [Category ("NunitWeb")]
1629 public void FormView_EditPostback ()
1631 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1632 string pageHTML = t.Run ();
1633 string newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
1635 string origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span> \n <span id=\"FormView1_LName\">Chand</span>\n <span id=\"FormView1_FName\">Mahesh</span> \n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1637 string origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span> \n <span id=\"FormView1_LName\">Chand</span>\n <span id=\"FormView1_FName\">Mahesh</span> \n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1639 HtmlDiff.AssertAreEqual (origHtml, newHtml, "BeforeEditPostback");
1641 //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
1643 FormRequest fr = new FormRequest (t.Response, "form1");
1644 fr.Controls.Add ("__EVENTTARGET");
1645 fr.Controls.Add ("__EVENTARGUMENT");
1646 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1647 fr.Controls["__EVENTARGUMENT"].Value = "";
1649 pageHTML = t.Run ();
1650 newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
1652 origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n Enter First Name:<input name=\"FormView1$FNameEdit\" type=\"text\" value=\"Mahesh\" id=\"FormView1_FNameEdit\" /><br />\n Enter Last Name:<input name=\"FormView1$LNameEdit\" type=\"text\" value=\"Chand\" id=\"FormView1_LNameEdit\" /><br />\n <a id=\"FormView1_UpdateButton\" href=\"javascript:__doPostBack('FormView1$UpdateButton','')\">Update</a>\n <a id=\"FormView1_CancelUpdateButton\" href=\"javascript:__doPostBack('FormView1$CancelUpdateButton','')\">Cancel</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1654 origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n Enter First Name:<input name=\"FormView1$FNameEdit\" type=\"text\" value=\"Mahesh\" id=\"FormView1_FNameEdit\" /><br />\n Enter Last Name:<input name=\"FormView1$LNameEdit\" type=\"text\" value=\"Chand\" id=\"FormView1_LNameEdit\" /><br />\n <a id=\"FormView1_UpdateButton\" href=\"javascript:__doPostBack('FormView1$UpdateButton','')\">Update</a>\n <a id=\"FormView1_CancelUpdateButton\" href=\"javascript:__doPostBack('FormView1$CancelUpdateButton','')\">Cancel</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1656 HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterEditPostback");
1658 //Update record postback
1660 fr = new FormRequest (t.Response, "form1");
1661 fr.Controls.Add ("__EVENTTARGET");
1662 fr.Controls.Add ("__EVENTARGUMENT");
1663 fr.Controls.Add ("FormView1$FNameEdit");
1664 fr.Controls.Add ("FormView1$LNameEdit");
1665 fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
1666 fr.Controls["__EVENTARGUMENT"].Value = "";
1667 fr.Controls["FormView1$FNameEdit"].Value = "Merav";
1668 fr.Controls["FormView1$LNameEdit"].Value = "Test";
1670 pageHTML = t.Run ();
1671 newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
1673 origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span> \n <span id=\"FormView1_LName\">Test</span>\n <span id=\"FormView1_FName\">Merav</span> \n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1675 origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span> \n <span id=\"FormView1_LName\">Test</span>\n <span id=\"FormView1_FName\">Merav</span> \n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1677 HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterUpdatePostback");
1679 //Postback to return to Edit mode
1680 fr = new FormRequest (t.Response, "form1");
1681 fr.Controls.Add ("__EVENTTARGET");
1682 fr.Controls.Add ("__EVENTARGUMENT");
1683 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1684 fr.Controls["__EVENTARGUMENT"].Value = "";
1686 pageHTML = t.Run ();
1687 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1688 Assert.AreEqual (true, pageHTML.Contains ("Merav"), "EditModePostback1");
1689 Assert.AreEqual (true, pageHTML.Contains ("CancelUpdateButton"), "EditModePostback2");
1691 // Cancel edited record postback
1692 fr = new FormRequest (t.Response, "form1");
1693 fr.Controls.Add ("__EVENTTARGET");
1694 fr.Controls.Add ("__EVENTARGUMENT");
1695 fr.Controls.Add ("FormView1$FNameEdit");
1696 fr.Controls.Add ("FormView1$LNameEdit");
1697 fr.Controls["FormView1$FNameEdit"].Value = "EditFirstName";
1698 fr.Controls["FormView1$LNameEdit"].Value = "EditLastName";
1699 fr.Controls["__EVENTTARGET"].Value = "FormView1$CancelUpdateButton";
1700 fr.Controls["__EVENTARGUMENT"].Value = "";
1702 pageHTML = t.Run ();
1703 newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
1705 origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span> \n <span id=\"FormView1_LName\">Test</span>\n <span id=\"FormView1_FName\">Merav</span> \n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1707 origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span> \n <span id=\"FormView1_LName\">Test</span>\n <span id=\"FormView1_FName\">Merav</span> \n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('FormView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('FormView1','Page$3')\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
1709 HtmlDiff.AssertAreEqual (origHtml, newHtml, "CancelEditedRecordPostback");
1712 [Test (Description="Bug #578863")]
1713 public void FormView_PagerSettings_Visibility ()
1716 string origHtml = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_Label1\">1</span>\n\t</td>\r\n\t</tr>\r\n</table>";
1718 string origHtml = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" border=\"1\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_Label1\">1</span>\n\t</td>\r\n\t</tr>\r\n</table>";
1720 WebTest t = new WebTest ("FormViewPagerVisibility.aspx");
1721 string pageHtml = t.Run ();
1722 string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
1724 HtmlDiff.AssertAreEqual (origHtml, renderedHtml, "#A1");
1728 [Category ("NunitWeb")]
1729 public void FormView_FireEvent_1 ()
1731 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1732 t.Invoker = PageInvoker.CreateOnInit (EditPostbackFireEvent_Init);
1733 string html = t.Run ();
1734 //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
1736 FormRequest fr = new FormRequest (t.Response, "form1");
1737 fr.Controls.Add ("__EVENTTARGET");
1738 fr.Controls.Add ("__EVENTARGUMENT");
1739 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1740 fr.Controls["__EVENTARGUMENT"].Value = "";
1744 ArrayList eventlist = t.UserData as ArrayList;
1745 if (eventlist == null)
1746 Assert.Fail ("User data does not been created fail");
1748 Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
1749 Assert.AreEqual ("ModeChanging", eventlist[1], "#2");
1750 Assert.AreEqual ("ModeChanged", eventlist[2], "#3");
1753 //Update record postback
1755 fr = new FormRequest (t.Response, "form1");
1756 fr.Controls.Add ("__EVENTTARGET");
1757 fr.Controls.Add ("__EVENTARGUMENT");
1758 fr.Controls.Add ("FormView1$FNameEdit");
1759 fr.Controls.Add ("FormView1$LNameEdit");
1760 fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
1761 fr.Controls["__EVENTARGUMENT"].Value = "";
1762 fr.Controls["FormView1$FNameEdit"].Value = "Merav";
1763 fr.Controls["FormView1$LNameEdit"].Value = "Test";
1767 eventlist = t.UserData as ArrayList;
1768 if (eventlist == null)
1769 Assert.Fail ("User data does not been created fail");
1771 Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
1772 Assert.AreEqual ("ItemUpdating", eventlist[1], "#2");
1773 Assert.AreEqual ("ItemUpdated", eventlist[2], "#3");
1774 Assert.AreEqual ("ModeChanging", eventlist[3], "#4");
1775 Assert.AreEqual ("ModeChanged", eventlist[4], "#5");
1778 #region FireEvents_1
1779 public static void EditPostbackFireEvent_Init (Page p)
1782 FormView d = p.FindControl ("FormView1") as FormView;
1784 d.ModeChanged +=new EventHandler(d_ModeChanged);
1785 d.ModeChanging+=new FormViewModeEventHandler(d_ModeChanging);
1786 d.ItemCommand += new FormViewCommandEventHandler (d_ItemCommand);
1787 d.ItemUpdating += new FormViewUpdateEventHandler (d_ItemUpdating);
1788 d.ItemUpdated += new FormViewUpdatedEventHandler (d_ItemUpdated);
1792 static void d_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
1794 if (WebTest.CurrentTest.UserData == null) {
1795 ArrayList list = new ArrayList ();
1796 list.Add ("ItemUpdated");
1797 WebTest.CurrentTest.UserData = list;
1800 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1802 throw new NullReferenceException ();
1803 list.Add ("ItemUpdated");
1804 WebTest.CurrentTest.UserData = list;
1808 static void d_ItemUpdating (object sender, FormViewUpdateEventArgs e)
1810 if (WebTest.CurrentTest.UserData == null) {
1811 ArrayList list = new ArrayList ();
1812 list.Add ("ItemUpdating");
1813 WebTest.CurrentTest.UserData = list;
1816 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1818 throw new NullReferenceException ();
1819 list.Add ("ItemUpdating");
1820 WebTest.CurrentTest.UserData = list;
1824 static void d_ItemCommand (object sender, FormViewCommandEventArgs e)
1826 if (WebTest.CurrentTest.UserData == null) {
1827 ArrayList list = new ArrayList ();
1828 list.Add ("ItemCommand");
1829 WebTest.CurrentTest.UserData = list;
1832 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1834 throw new NullReferenceException ();
1835 list.Add ("ItemCommand");
1836 WebTest.CurrentTest.UserData = list;
1840 static void d_ModeChanging(object sender, FormViewModeEventArgs e)
1842 if (WebTest.CurrentTest.UserData == null)
1844 ArrayList list = new ArrayList ();
1845 list.Add ("ModeChanging");
1846 WebTest.CurrentTest.UserData = list;
1849 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1851 throw new NullReferenceException ();
1852 list.Add ("ModeChanging");
1853 WebTest.CurrentTest.UserData = list;
1857 static void d_ModeChanged(object sender, EventArgs e)
1859 if (WebTest.CurrentTest.UserData == null)
1861 ArrayList list = new ArrayList ();
1862 list.Add ("ModeChanged");
1863 WebTest.CurrentTest.UserData = list;
1866 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1868 throw new NullReferenceException ();
1869 list.Add ("ModeChanged");
1870 WebTest.CurrentTest.UserData = list;
1876 [Category ("NunitWeb")]
1877 public void FormView_FireEvent_2 ()
1879 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1880 t.Invoker = PageInvoker.CreateOnInit (FireEvent_2_Init);
1883 // Checking for itemcreated event fired.
1884 ArrayList eventlist = t.UserData as ArrayList;
1885 if (eventlist == null)
1886 Assert.Fail ("User data does not been created fail");
1888 Assert.AreEqual ("ItemCreated", eventlist[0], "#1");
1892 public static void FireEvent_2_Init (Page p)
1894 FormView d = p.FindControl ("FormView1") as FormView;
1896 d.ItemCreated += new EventHandler (d_ItemCreated);
1900 static void d_ItemCreated (object sender, EventArgs e)
1902 if (WebTest.CurrentTest.UserData == null) {
1903 ArrayList list = new ArrayList ();
1904 list.Add ("ItemCreated");
1905 WebTest.CurrentTest.UserData = list;
1908 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1910 throw new NullReferenceException ();
1911 list.Add ("ItemCreated");
1912 WebTest.CurrentTest.UserData = list;
1918 [Category ("NunitWeb")]
1919 public void FormView_FireEvent_3 ()
1921 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1922 t.Invoker = PageInvoker.CreateOnInit (FireEvent_3_Init);
1925 FormRequest fr = new FormRequest (t.Response, "form1");
1926 fr.Controls.Add ("__EVENTTARGET");
1927 fr.Controls.Add ("__EVENTARGUMENT");
1928 fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
1929 fr.Controls["__EVENTARGUMENT"].Value = "";
1935 fr = new FormRequest (t.Response, "form1");
1936 fr.Controls.Add ("__EVENTTARGET");
1937 fr.Controls.Add ("__EVENTARGUMENT");
1938 fr.Controls.Add ("FormView1$IDInsert");
1939 fr.Controls.Add ("FormView1$FNameInsert");
1940 fr.Controls.Add ("FormView1$LNameInsert");
1941 fr.Controls["FormView1$IDInsert"].Value = "33";
1942 fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
1943 fr.Controls["FormView1$LNameInsert"].Value = "InsertLastName";
1944 fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
1945 fr.Controls["__EVENTARGUMENT"].Value = "";
1949 ArrayList eventlist = t.UserData as ArrayList;
1950 if (eventlist == null)
1951 Assert.Fail ("User data does not been created fail");
1953 Assert.AreEqual ("ItemInserting", eventlist[0], "#1");
1954 Assert.AreEqual ("ItemInserted", eventlist[1], "#2");
1958 public static void FireEvent_3_Init (Page p)
1960 FormView d = p.FindControl ("FormView1") as FormView;
1962 d.ItemInserted += new FormViewInsertedEventHandler (d_ItemInserted);
1963 d.ItemInserting += new FormViewInsertEventHandler (d_ItemInserting);
1967 static void d_ItemInserting (object sender, FormViewInsertEventArgs e)
1969 if (WebTest.CurrentTest.UserData == null) {
1970 ArrayList list = new ArrayList ();
1971 list.Add ("ItemInserting");
1972 WebTest.CurrentTest.UserData = list;
1975 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1977 throw new NullReferenceException ();
1978 list.Add ("ItemInserting");
1979 WebTest.CurrentTest.UserData = list;
1983 static void d_ItemInserted (object sender, FormViewInsertedEventArgs e)
1985 if (WebTest.CurrentTest.UserData == null) {
1986 ArrayList list = new ArrayList ();
1987 list.Add ("ItemInserted");
1988 WebTest.CurrentTest.UserData = list;
1991 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1993 throw new NullReferenceException ();
1994 list.Add ("ItemInserted");
1995 WebTest.CurrentTest.UserData = list;
2001 [Category ("NunitWeb")]
2002 public void FormView_FireEvent_4 ()
2004 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2005 t.Invoker = PageInvoker.CreateOnInit (FireEvent_4_Init);
2009 FormRequest fr = new FormRequest (t.Response, "form1");
2010 fr.Controls.Add ("__EVENTTARGET");
2011 fr.Controls.Add ("__EVENTARGUMENT");
2012 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2013 fr.Controls["__EVENTARGUMENT"].Value = "";
2017 ArrayList eventlist = t.UserData as ArrayList;
2018 if (eventlist == null)
2019 Assert.Fail ("User data does not been created fail");
2021 Assert.AreEqual ("ItemDeleting", eventlist[0], "#1");
2022 Assert.AreEqual ("ItemDeleted", eventlist[1], "#2");
2027 public static void FireEvent_4_Init (Page p)
2029 FormView d = p.FindControl ("FormView1") as FormView;
2031 d.ItemDeleting += new FormViewDeleteEventHandler (d_ItemDeleting);
2032 d.ItemDeleted += new FormViewDeletedEventHandler (d_ItemDeleted);
2036 static void d_ItemDeleted (object sender, FormViewDeletedEventArgs e)
2038 if (WebTest.CurrentTest.UserData == null) {
2039 ArrayList list = new ArrayList ();
2040 list.Add ("ItemDeleted");
2041 WebTest.CurrentTest.UserData = list;
2044 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2046 throw new NullReferenceException ();
2047 list.Add ("ItemDeleted");
2048 WebTest.CurrentTest.UserData = list;
2052 static void d_ItemDeleting (object sender, FormViewDeleteEventArgs e)
2054 if (WebTest.CurrentTest.UserData == null) {
2055 ArrayList list = new ArrayList ();
2056 list.Add ("ItemDeleting");
2057 WebTest.CurrentTest.UserData = list;
2060 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2062 throw new NullReferenceException ();
2063 list.Add ("ItemDeleting");
2064 WebTest.CurrentTest.UserData = list;
2070 [Category ("NunitWeb")]
2071 public void FormView_FireEvent_5 ()
2073 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2074 t.Invoker = PageInvoker.CreateOnInit (FireEvent_5_Init);
2078 FormRequest fr = new FormRequest (t.Response, "form1");
2079 fr.Controls.Add ("__EVENTTARGET");
2080 fr.Controls.Add ("__EVENTARGUMENT");
2081 fr.Controls["__EVENTTARGET"].Value = "FormView1";
2082 fr.Controls["__EVENTARGUMENT"].Value = "Page$2";
2086 ArrayList eventlist = t.UserData as ArrayList;
2087 if (eventlist == null)
2088 Assert.Fail ("User data does not been created fail");
2090 Assert.AreEqual ("PageIndexChanging", eventlist[0], "#1");
2091 Assert.AreEqual ("PageIndexChanged", eventlist[1], "#2");
2095 public static void FireEvent_5_Init (Page p)
2097 FormView d = p.FindControl ("FormView1") as FormView;
2099 d.PageIndexChanged+=new EventHandler(d_PageIndexChanged);
2100 d.PageIndexChanging+=new FormViewPageEventHandler(d_PageIndexChanging);
2104 static void d_PageIndexChanging (object sender, FormViewPageEventArgs e)
2106 if (WebTest.CurrentTest.UserData == null) {
2107 ArrayList list = new ArrayList ();
2108 list.Add ("PageIndexChanging");
2109 WebTest.CurrentTest.UserData = list;
2112 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2114 throw new NullReferenceException ();
2115 list.Add ("PageIndexChanging");
2116 WebTest.CurrentTest.UserData = list;
2120 static void d_PageIndexChanged (object sender, EventArgs e)
2122 if (WebTest.CurrentTest.UserData == null) {
2123 ArrayList list = new ArrayList ();
2124 list.Add ("PageIndexChanged");
2125 WebTest.CurrentTest.UserData = list;
2128 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2130 throw new NullReferenceException ();
2131 list.Add ("PageIndexChanged");
2132 WebTest.CurrentTest.UserData = list;
2138 [Category ("NunitWeb")]
2139 public void FormView_InsertPostback ()
2141 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2142 string pageHTML = t.Run ();
2143 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeInsert1");
2144 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeInsert2");
2145 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeInsert3");
2146 Assert.AreEqual (false, pageHTML.Contains ("Page$4"), "BeforeInsert4");
2147 FormRequest fr = new FormRequest (t.Response, "form1");
2148 fr.Controls.Add ("__EVENTTARGET");
2149 fr.Controls.Add ("__EVENTARGUMENT");
2150 fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
2151 fr.Controls["__EVENTARGUMENT"].Value = "";
2153 pageHTML = t.Run ();
2154 string newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
2156 string origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n Insert ID:\n <input name=\"FormView1$IDInsert\" type=\"text\" id=\"FormView1_IDInsert\" /><br />\n Insert First Name:\n <input name=\"FormView1$FNameInsert\" type=\"text\" id=\"FormView1_FNameInsert\" />\n <br />\n Insert Last Name: \n <input name=\"FormView1$LNameInsert\" type=\"text\" id=\"FormView1_LNameInsert\" />\n <a id=\"FormView1_InsertButton\" href=\"javascript:__doPostBack('FormView1$InsertButton','')\">Insert</a>\n <a id=\"FormView1_CancelInsertButton\" href=\"javascript:__doPostBack('FormView1$CancelInsertButton','')\">Cancel</a>\n </td>\r\n\t</tr>\r\n</table>";
2158 string origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n Insert ID:\n <input name=\"FormView1$IDInsert\" type=\"text\" id=\"FormView1_IDInsert\" /><br />\n Insert First Name:\n <input name=\"FormView1$FNameInsert\" type=\"text\" id=\"FormView1_FNameInsert\" />\n <br />\n Insert Last Name: \n <input name=\"FormView1$LNameInsert\" type=\"text\" id=\"FormView1_LNameInsert\" />\n <a id=\"FormView1_InsertButton\" href=\"javascript:__doPostBack('FormView1$InsertButton','')\">Insert</a>\n <a id=\"FormView1_CancelInsertButton\" href=\"javascript:__doPostBack('FormView1$CancelInsertButton','')\">Cancel</a>\n </td>\r\n\t</tr>\r\n</table>";
2160 HtmlDiff.AssertAreEqual (origHtml, newHtml, "InsertPostback");
2164 fr = new FormRequest (t.Response, "form1");
2165 fr.Controls.Add ("__EVENTTARGET");
2166 fr.Controls.Add ("__EVENTARGUMENT");
2167 fr.Controls.Add ("FormView1$IDInsert");
2168 fr.Controls.Add ("FormView1$FNameInsert");
2169 fr.Controls.Add ("FormView1$LNameInsert");
2170 fr.Controls["FormView1$IDInsert"].Value = "33";
2171 fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
2172 fr.Controls["FormView1$LNameInsert"].Value ="InsertLastName";
2173 fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
2174 fr.Controls["__EVENTARGUMENT"].Value = "";
2176 pageHTML = t.Run ();
2177 Assert.AreEqual (true, pageHTML.Contains ("1001"), "AfterInsert1");
2178 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "AfterInsert2");
2179 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "AfterInsert3");
2180 Assert.AreEqual (true, pageHTML.Contains ("Page$4"), "AfterInsert4");
2182 //Checking that the inserted record appears on page 4.
2184 fr = new FormRequest (t.Response, "form1");
2185 fr.Controls.Add ("__EVENTTARGET");
2186 fr.Controls.Add ("__EVENTARGUMENT");
2187 fr.Controls["__EVENTTARGET"].Value = "FormView1";
2188 fr.Controls["__EVENTARGUMENT"].Value = "Page$4";
2190 pageHTML = t.Run ();
2191 Assert.AreEqual (true, pageHTML.Contains ("33"), "AfterInsert1");
2192 Assert.AreEqual (true, pageHTML.Contains ("InsertLastName"), "AfterInsert2");
2193 Assert.AreEqual (true, pageHTML.Contains ("InsertFirstName"), "AfterInsert3");
2198 [Category ("NunitWeb")]
2199 public void FormView_DeleteAndEmptyTemplatePostback ()
2201 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2202 string pageHTML = t.Run ();
2204 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDelete1");
2205 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeDelete2");
2206 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeDelete3");
2207 Assert.AreEqual (true, pageHTML.Contains ("Page$3"), "BeforeDelete4");
2209 FormRequest fr = new FormRequest (t.Response, "form1");
2210 fr.Controls.Add ("__EVENTTARGET");
2211 fr.Controls.Add ("__EVENTARGUMENT");
2212 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2213 fr.Controls["__EVENTARGUMENT"].Value = "";
2215 pageHTML = t.Run ();
2216 Assert.AreEqual (true, pageHTML.Contains ("1002"), "AfterFirstDelete1");
2217 Assert.AreEqual (true, pageHTML.Contains ("Talmadge"), "AfterFirstDelete2");
2218 Assert.AreEqual (true, pageHTML.Contains ("Melanie"), "AfterFirstDelete3");
2219 Assert.AreEqual (true, pageHTML.Contains ("Page$2"), "AfterFirstDelete4");
2220 Assert.AreEqual (false, pageHTML.Contains ("Page$3"), "AfterFirstDelete5");
2222 //Delete second item
2224 fr = new FormRequest (t.Response, "form1");
2225 fr.Controls.Add ("__EVENTTARGET");
2226 fr.Controls.Add ("__EVENTARGUMENT");
2227 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2228 fr.Controls["__EVENTARGUMENT"].Value = "";
2230 pageHTML = t.Run ();
2231 Assert.AreEqual (true, pageHTML.Contains ("1003"), "AfterSecondDelete1");
2232 Assert.AreEqual (true, pageHTML.Contains ("Bansal"), "AfterSecondDelete2");
2233 Assert.AreEqual (true, pageHTML.Contains ("Vinay"), "AfterSecondDelete3");
2234 Assert.AreEqual (false, pageHTML.Contains ("Page$2"), "AfterSecondDelete4");
2236 //Delete last item and checking that the EmptyDataTemplate appears.
2238 fr = new FormRequest (t.Response, "form1");
2239 fr.Controls.Add ("__EVENTTARGET");
2240 fr.Controls.Add ("__EVENTARGUMENT");
2241 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2242 fr.Controls["__EVENTARGUMENT"].Value = "";
2244 pageHTML = t.Run ();
2245 Assert.AreEqual (true, pageHTML.Contains ("FormView1_Label1"), "EmptyTemplateTest1");
2246 Assert.AreEqual (true, pageHTML.Contains ("The Database is empty"), "EmptyTemplateTest2");
2250 public void FormView_CurrentMode () {
2251 FormView view = new FormView ();
2252 view.DefaultMode = FormViewMode.Insert;
2253 Assert.AreEqual (FormViewMode.Insert, view.CurrentMode, "FormView_CurrentMode#1");
2254 view.ChangeMode (FormViewMode.Edit);
2255 Assert.AreEqual (FormViewMode.Edit, view.CurrentMode, "FormView_CurrentMode#2");
2259 public void FormView_CreateDataSourceSelectArguments2 () {
2260 DataSourceView view;
2261 Page p = new Page ();
2263 Poker dv = new Poker ();
2264 p.Controls.Add (dv);
2266 ObjectDataSource data = new ObjectDataSource ();
2267 data.TypeName = typeof (DataSourceObject).AssemblyQualifiedName;
2268 data.SelectMethod = "GetList";
2269 data.SortParameterName = "sortExpression";
2270 DataSourceSelectArguments arg;
2271 p.Controls.Add (data);
2273 dv.DataSource = data;
2276 arg = dv.DoCreateDataSourceSelectArguments ();
2277 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "Default");
2279 dv.AllowPaging = true;
2281 arg = dv.DoCreateDataSourceSelectArguments ();
2282 view = dv.DoGetData ();
2283 Assert.IsFalse (view.CanPage);
2284 Assert.IsTrue (view.CanRetrieveTotalRowCount);
2285 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = true, CanPage = false, CanRetrieveTotalRowCount = true");
2287 // make DataSourceView.CanPage = true
2288 data.EnablePaging = true;
2290 arg = dv.DoCreateDataSourceSelectArguments ();
2291 view = dv.DoGetData ();
2292 Assert.IsTrue (view.CanPage);
2293 Assert.IsFalse (view.CanRetrieveTotalRowCount);
2294 Assert.IsTrue (arg.Equals (new DataSourceSelectArguments (2, -1)), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = false");
2296 dv.AllowPaging = false;
2297 arg = dv.DoCreateDataSourceSelectArguments ();
2298 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = false");
2300 // make DataSourceView.CanRetrieveTotalRowCount = true
2301 data.SelectCountMethod = "GetCount";
2303 arg = dv.DoCreateDataSourceSelectArguments ();
2304 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = true");
2306 dv.AllowPaging = true;
2307 arg = dv.DoCreateDataSourceSelectArguments ();
2308 DataSourceSelectArguments arg1 = new DataSourceSelectArguments (2, 1);
2309 arg1.RetrieveTotalRowCount = true;
2310 view = dv.DoGetData ();
2311 Assert.IsTrue (view.CanPage);
2312 Assert.IsTrue (view.CanRetrieveTotalRowCount);
2313 Assert.IsTrue (arg.Equals (arg1), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = true");
2317 public void FormView_GetPostBackOptions () {
2318 FormView fv = new FormView ();
2319 fv.Page = new Page ();
2320 IButtonControl btn = new Button ();
2321 btn.CausesValidation = false;
2322 Assert.IsFalse (btn.CausesValidation);
2323 Assert.AreEqual (String.Empty, btn.CommandName);
2324 Assert.AreEqual (String.Empty, btn.CommandArgument);
2325 Assert.AreEqual (String.Empty, btn.PostBackUrl);
2326 Assert.AreEqual (String.Empty, btn.ValidationGroup);
2327 PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
2328 Assert.IsFalse (options.PerformValidation);
2329 Assert.IsFalse (options.AutoPostBack);
2330 Assert.IsFalse (options.TrackFocus);
2331 Assert.IsTrue (options.ClientSubmit);
2332 Assert.IsTrue (options.RequiresJavaScriptProtocol);
2333 Assert.AreEqual ("$", options.Argument);
2334 Assert.AreEqual (null, options.ActionUrl);
2335 Assert.AreEqual (null, options.ValidationGroup);
2336 Assert.IsTrue (object.ReferenceEquals (options.TargetControl, fv));
2338 btn.ValidationGroup = "VG";
2339 btn.CommandName = "CMD";
2340 btn.CommandArgument = "ARG";
2341 btn.PostBackUrl = "Page.aspx";
2342 Assert.IsFalse (btn.CausesValidation);
2343 Assert.AreEqual ("CMD", btn.CommandName);
2344 Assert.AreEqual ("ARG", btn.CommandArgument);
2345 Assert.AreEqual ("Page.aspx", btn.PostBackUrl);
2346 Assert.AreEqual ("VG", btn.ValidationGroup);
2347 options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
2348 Assert.IsFalse (options.PerformValidation);
2349 Assert.IsFalse (options.AutoPostBack);
2350 Assert.IsFalse (options.TrackFocus);
2351 Assert.IsTrue (options.ClientSubmit);
2352 Assert.IsTrue (options.RequiresJavaScriptProtocol);
2353 Assert.AreEqual ("CMD$ARG", options.Argument);
2354 Assert.AreEqual (null, options.ActionUrl);
2355 Assert.AreEqual (null, options.ValidationGroup);
2359 [ExpectedException (typeof (InvalidOperationException))]
2360 public void FormView_GetPostBackOptions_CausesValidation () {
2361 FormView fv = new FormView ();
2362 fv.Page = new Page ();
2363 IButtonControl btn = new Button ();
2364 Assert.IsTrue (btn.CausesValidation);
2365 Assert.AreEqual (String.Empty, btn.CommandName);
2366 Assert.AreEqual (String.Empty, btn.CommandArgument);
2367 Assert.AreEqual (String.Empty, btn.PostBackUrl);
2368 Assert.AreEqual (String.Empty, btn.ValidationGroup);
2369 PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
2373 [ExpectedException (typeof (ArgumentNullException))]
2374 public void FormView_GetPostBackOptions_Null_Argument () {
2375 FormView fv = new FormView ();
2376 fv.Page = new Page ();
2377 PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (null);
2381 [Category ("NunitWeb")]
2382 public void FormView_RequiresDataBinding () {
2383 PageDelegates delegates = new PageDelegates ();
2384 delegates.LoadComplete = FormView_RequiresDataBinding_LoadComplete;
2385 PageInvoker invoker = new PageInvoker (delegates);
2386 WebTest t = new WebTest (invoker);
2390 public static void FormView_RequiresDataBinding_LoadComplete (Page p) {
2391 Poker view = new Poker ();
2392 p.Form.Controls.Add (view);
2394 view.DataSource = new string [] { "A", "B", "C" };
2397 Assert.AreEqual (false, view.GetRequiresDataBinding ());
2399 view.PagerTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2400 Assert.AreEqual (false, view.GetRequiresDataBinding (), "PagerTemplate was set");
2402 view.EmptyDataTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2403 Assert.AreEqual (false, view.GetRequiresDataBinding (), "EmptyDataTemplate was set");
2405 view.HeaderTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2406 Assert.AreEqual (false, view.GetRequiresDataBinding (), "HeaderTemplate was set");
2408 view.FooterTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2409 Assert.AreEqual (false, view.GetRequiresDataBinding (), "FooterTemplate was set");
2411 view.EditItemTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2412 Assert.AreEqual (false, view.GetRequiresDataBinding (), "EditItemTemplate was set");
2414 view.InsertItemTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2415 Assert.AreEqual (false, view.GetRequiresDataBinding (), "InsertItemTemplate was set");
2417 view.ItemTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2418 Assert.AreEqual (false, view.GetRequiresDataBinding (), "ItemTemplate was set");
2421 public static void BuildTemplateMethod (Control c) { }
2424 public void ModifiedOuterTableStylePropertyName ()
2426 var fv = new Poker ();
2429 props = fv.CallModifiedOuterTableStylePropertyName ();
2430 Assert.AreEqual (String.Empty, props, "#A1");
2432 fv.BackImageUrl = "http://example.com/image.png";
2433 props = fv.CallModifiedOuterTableStylePropertyName ();
2434 Assert.IsNotNull (props, "#A2-1");
2435 Assert.AreEqual ("BackImageUrl", props, "#A2-2");
2438 fv.CellPadding = 10;
2439 props = fv.CallModifiedOuterTableStylePropertyName ();
2440 Assert.IsNotNull (props, "#A3-1");
2441 Assert.AreEqual ("CellPadding", props, "#A3-2");
2444 fv.CellSpacing = 10;
2445 props = fv.CallModifiedOuterTableStylePropertyName ();
2446 Assert.IsNotNull (props, "#A4-1");
2447 Assert.AreEqual ("CellSpacing", props, "#A4-2");
2450 fv.GridLines = GridLines.Both;
2451 props = fv.CallModifiedOuterTableStylePropertyName ();
2452 Assert.IsNotNull (props, "#A5-1");
2453 Assert.AreEqual ("GridLines", props, "#A5-2");
2456 fv.HorizontalAlign = HorizontalAlign.Justify;
2457 props = fv.CallModifiedOuterTableStylePropertyName ();
2458 Assert.IsNotNull (props, "#A6-1");
2459 Assert.AreEqual ("HorizontalAlign", props, "#A6-2");
2462 fv.Font.Bold = true;
2463 props = fv.CallModifiedOuterTableStylePropertyName ();
2464 Assert.IsNotNull (props, "#A6-1");
2465 Assert.AreEqual ("Font", props, "#A6-2");
2467 // Just one property is reported at a time
2469 fv.BackImageUrl = "http://example.com/image.png";
2470 fv.CellPadding = 10;
2471 props = fv.CallModifiedOuterTableStylePropertyName ();
2472 Assert.IsNotNull (props, "#B1-1");
2473 Assert.AreEqual ("BackImageUrl", props, "#B1-2");
2478 public class TestMyData
2480 static IList<int> str;
2481 //str.(new int[] { 1, 2, 3, 4, 5, 6 });
2483 static TestMyData ()
2488 public static void InitData()
2490 str = new List<int> ();
2491 for (int i=1;i<7;i++)
2494 public static IList<int> GetMyList()
2499 public static int UpdateList(int index, int value)
2505 public static int InsertList(int value)
2511 public static void DeleteList(int value)
2518 public class MyTemplate : ITemplate
2521 Label l = new Label ();
2522 #region ITemplate Members
2524 public void InstantiateIn (Control container)
2526 container.Controls.Add (l);
2530 public void SetDataItem (object value)
2532 l.Text = value.ToString ();
2538 public class FormViewDataObject
2541 public static DataTable ds = CreateDataTable();
2543 public static DataTable Select()
2552 public static DataTable Delete(string ID, string FName, string LName)
2555 DataRow dr = ds.Rows.Find(ID);
2570 public static DataTable Insert(string ID, string FName, string LName)
2573 DataRow dr = ds.NewRow();
2575 dr["FName"] = FName;
2576 dr["LName"] = LName;
2583 public static DataTable Update(string ID, string FName, string LName)
2585 DataRow dr = ds.Rows.Find(ID);
2588 Label lbl = new Label();
2589 lbl.Text = "ID doesn't exist ";
2592 dr["FName"] = FName;
2593 dr["LName"] = LName;
2600 public static DataTable CreateDataTable()
2603 DataTable aTable = new DataTable("A");
2607 // Create ID column and add to the DataTable.
2609 dtCol = new DataColumn();
2610 dtCol.DataType = Type.GetType("System.Int32");
2611 dtCol.ColumnName = "ID";
2612 dtCol.AutoIncrement = true;
2613 dtCol.Caption = "ID";
2614 dtCol.ReadOnly = true;
2615 dtCol.Unique = true;
2616 aTable.Columns.Add(dtCol);
2620 // Create Name column and add to the table
2622 dtCol = new DataColumn();
2623 dtCol.DataType = Type.GetType("System.String");
2624 dtCol.ColumnName = "FName";
2625 dtCol.AutoIncrement = false;
2626 dtCol.Caption = "First Name";
2627 dtCol.ReadOnly = false;
2628 dtCol.Unique = false;
2629 aTable.Columns.Add(dtCol);
2633 // Create Last Name column and add to the table.
2635 dtCol = new DataColumn();
2636 dtCol.DataType = Type.GetType("System.String");
2637 dtCol.ColumnName = "LName";
2638 dtCol.AutoIncrement = false;
2639 dtCol.Caption = "Last Name";
2640 dtCol.ReadOnly = false;
2641 dtCol.Unique = false;
2642 aTable.Columns.Add(dtCol);
2646 // Create three rows to the table
2648 dtRow = aTable.NewRow();
2650 dtRow["FName"] = "Mahesh";
2651 dtRow["LName"] = "Chand";
2652 aTable.Rows.Add(dtRow);
2654 dtRow = aTable.NewRow();
2656 dtRow["FName"] = "Melanie";
2657 dtRow["LName"] = "Talmadge";
2658 aTable.Rows.Add(dtRow);
2660 dtRow = aTable.NewRow();
2662 dtRow["FName"] = "Vinay";
2663 dtRow["LName"] = "Bansal";
2664 aTable.Rows.Add(dtRow);
2666 aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };