2 // Tests for System.Web.UI.WebControls.FormView.cs
5 // Merav Sudri (meravs@mainsoft.com)
8 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 using NUnit.Framework;
37 using System.Collections;
38 using System.Collections.Specialized;
39 using System.Globalization;
42 using System.Web.UI.HtmlControls;
43 using System.Web.UI.WebControls;
44 using MonoTests.SystemWeb.Framework;
45 using MonoTests.stand_alone.WebHarness;
48 namespace MonoTests.System.Web.UI.WebControls
51 public class DetailsViewTest {
53 public class PokerDetailsView: DetailsView
55 public bool ensureDataBound=false;
56 public bool isInitializePager = false;
57 public bool controlHierarchy = false;
58 public PokerDetailsView ()
63 public object SaveState ()
65 return SaveViewState ();
68 public void LoadState (object o)
73 public StateBag StateBag
75 get { return base.ViewState; }
78 public HtmlTextWriterTag PokerTagKey
80 get { return base.TagKey; }
83 public string Render ()
85 StringWriter sw = new StringWriter ();
86 HtmlTextWriter tw = new HtmlTextWriter (sw);
88 return sw.ToString ();
91 public void DoOnInit (EventArgs e)
96 public void DoOnDataSourceViewChanged (Object sender, EventArgs e)
98 OnDataSourceViewChanged (sender, e);
101 public void DoOnItemCommand (DetailsViewCommandEventArgs e)
106 public void DoOnItemCreated (EventArgs e)
111 public void DoOnItemDeleted (DetailsViewDeletedEventArgs e)
116 public void DoOnItemDeleting (DetailsViewDeleteEventArgs e)
121 public void DoOnItemInserted (DetailsViewInsertedEventArgs e)
126 public void DoOnItemInserting (DetailsViewInsertEventArgs e)
131 public void DoOnItemUpdated (DetailsViewUpdatedEventArgs e)
136 public void DoOnItemUpdating (DetailsViewUpdateEventArgs e)
142 public void DoOnModeChanged (EventArgs e)
146 public void DoOnModeChanging (DetailsViewModeEventArgs e)
150 public void DoOnPageIndexChanged (EventArgs e)
152 OnPageIndexChanged (e);
154 public void DoOnPageIndexChanging (DetailsViewPageEventArgs e)
156 OnPageIndexChanging (e);
159 public void DoOnPagePreLoad (Object sender , EventArgs e)
161 OnPagePreLoad (sender, e);
163 public void DoOnPreRender (EventArgs e)
167 public void DoOnUnload (EventArgs e)
171 public void DoOnBubbleEvent (Object sender, EventArgs e)
173 OnBubbleEvent (sender,e);
176 public Object DoSaveControlState ()
178 return SaveControlState ();
181 public void DoLoadControlState (Object saveState)
183 LoadControlState (saveState);
186 public AutoGeneratedField DoCreateAutoGeneratedRow (AutoGeneratedFieldProperties filedProperties)
188 return CreateAutoGeneratedRow (filedProperties);
191 public ICollection DoCreateAutoGeneratedRows (Object DataItem)
193 return CreateAutoGeneratedRows (DataItem);
196 public int DoCreateChildControls (IEnumerable dataSource,bool dataBinding)
198 return CreateChildControls (dataSource, dataBinding);
201 public Style DoCreateControlStyle ()
203 return CreateControlStyle ();
206 public DetailsViewRow DoCreateRow (int rowIndex,DataControlRowType rowType, DataControlRowState rowState)
208 return CreateRow (rowIndex, rowType, rowState);
211 public Table DoCreateTable ()
213 return CreateTable ();
216 protected override void EnsureDataBound ()
218 base.EnsureDataBound ();
219 ensureDataBound = true;
222 public void DoConfirmInitState ()
224 base.ConfirmInitState ();
227 public void DoExtractRowValues (IOrderedDictionary fieldValues, bool includeReadOnlyFields, bool includeKeys)
229 ExtractRowValues (fieldValues, includeReadOnlyFields, includeKeys);
232 public ICollection DoCreateFieldSet (Object dataItem, bool useDataSource)
234 return CreateFieldSet (dataItem, useDataSource);
237 public string DoGetCallbackResult ()
239 return GetCallbackResult ();
242 public string DoGetCallbackScript (IButtonControl buttonControl, string argument)
244 return GetCallbackScript (buttonControl, argument);
247 protected override void InitializePager (DetailsViewRow row, PagedDataSource pagedDataSource)
249 base.InitializePager (row,pagedDataSource);
250 isInitializePager = true;
253 public void DoPerformDataBinding (IEnumerable data)
255 PerformDataBinding (data);
258 protected override void PrepareControlHierarchy ()
260 base.PrepareControlHierarchy ();
261 controlHierarchy = true;
268 ArrayList myds = new ArrayList ();
278 WebTest.CopyResource (GetType (), "FooterTemplateTest.aspx", "FooterTemplateTest.aspx");
279 WebTest.CopyResource (GetType (), "DetailsViewTemplates.aspx", "DetailsViewTemplates.aspx");
280 WebTest.CopyResource (GetType (), "DetailsViewDataActions.aspx", "DetailsViewDataActions.aspx");
281 WebTest.CopyResource (GetType (), "DetailsViewProperties1.aspx", "DetailsViewProperties1.aspx");
288 [Category ("NotWorking")]
289 public void DetailsView_DefaultProperties ()
291 PokerDetailsView dv = new PokerDetailsView ();
292 Assert.AreEqual (false, dv.AllowPaging, "AllowPagingDefault");
293 Assert.AreEqual (typeof(TableItemStyle), dv.AlternatingRowStyle.GetType(),"AlternatingRowStyleDefault") ;
294 Assert.AreEqual (false, dv.AutoGenerateDeleteButton, "AutoGenerateDeleteButtonDefault");
295 Assert.AreEqual (false, dv.AutoGenerateEditButton, "AutoGenerateEditButtonDefault");
296 Assert.AreEqual (false, dv.AutoGenerateInsertButton, "AutoGenerateInsertButtonDefault");
297 Assert.AreEqual (true, dv.AutoGenerateRows, "AutoGenerateRowsDefault");
298 Assert.AreEqual ("", dv.BackImageUrl, "BackImageUrlDefault");
299 Assert.AreEqual (null, dv.BottomPagerRow, "BottomPagerRowDefault");
300 Assert.AreEqual ("", dv.Caption, "CaptionDefault");
301 Assert.AreEqual (TableCaptionAlign.NotSet, dv.CaptionAlign, "CaptionAlignDefault");
302 Assert.AreEqual (-1, dv.CellPadding, "CellPaddingDefault");
303 Assert.AreEqual (0, dv.CellSpacing, "CellSpacingDefault");
304 Assert.AreEqual (typeof(TableItemStyle), dv.CommandRowStyle.GetType(),"CommandRowStyleDefault");
305 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.CurrentMode, "CurrentModeDefault");
306 Assert.AreEqual (null, dv.DataItem, "DataItemDefault");
307 Assert.AreEqual (0, dv.DataItemCount, " DataItemCountDefault");
308 Assert.AreEqual (0, dv.DataItemIndex, "DataItemIndexDefault");
309 Assert.AreEqual (typeof (DataKey), dv.DataKey.GetType (), "DataKeyDefault");
310 Assert.AreEqual (new string[0],dv.DataKeyNames,"DataKeyNamesDefault");
311 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.DefaultMode, "DefaultMode");
312 Assert.AreEqual (typeof (TableItemStyle),dv.EditRowStyle.GetType(),"EditRowStyleDefault");
313 Assert.AreEqual (typeof (TableItemStyle),dv.EmptyDataRowStyle.GetType(), " EmptyDataRowStyleDefault");
314 Assert.AreEqual (null,dv.EmptyDataTemplate,"EmptyDataTemplate");
315 Assert.AreEqual (false,dv.EnablePagingCallbacks, "EnablePagingCallbacksDefault");
316 Assert.AreEqual (true,dv.FieldHeaderStyle.IsEmpty,"FieldHeaderStyleDefault");
317 Assert.AreEqual (typeof (TableItemStyle),dv.FieldHeaderStyle.GetType() ,"FieldHeaderStyleDefault");
318 Assert.AreEqual (0, dv.Fields.Count ,"FiledsDefault");
319 Assert.AreEqual (null, dv.FooterRow, "FooterRowDefault1");
320 Assert.AreEqual (typeof (TableItemStyle), dv.FooterStyle.GetType (), "FooterStyleDefault");
321 Assert.AreEqual (null, dv.FooterTemplate, "FooterTemplateDefault");
322 Assert.AreEqual ("", dv.FooterText, "FooterTextDefault");
323 Assert.AreEqual (GridLines.Both, dv.GridLines, "GridLinesDefault");
324 Assert.AreEqual (null, dv.HeaderRow, "HeaderRowDefault");
325 Assert.AreEqual (typeof (TableItemStyle), dv.HeaderStyle.GetType() , "HeaderStyleDefault");
326 Assert.AreEqual (null, dv.HeaderTemplate, "HeaderTemplateDefault");
327 Assert.AreEqual ("", dv.HeaderText, "HeaderTextDefault");
328 Assert.AreEqual (HorizontalAlign.NotSet, dv.HorizontalAlign, "HorizontalAlignDefault");
329 Assert.AreEqual (typeof (TableItemStyle), dv.InsertRowStyle.GetType (), "InsertRowStyleDefault");
330 Assert.AreEqual (0, dv.PageCount, "PageCountDefault");
331 Assert.AreEqual (0, dv.PageIndex, "PageIndexDefault");
332 Assert.AreEqual (typeof (PagerSettings), dv.PagerSettings.GetType() , "PagerSettingsDefault");
333 Assert.AreEqual (typeof (TableItemStyle), dv.PagerStyle.GetType() , "PagerStyleDefault");
334 Assert.AreEqual (null, dv.PagerTemplate, "PagerTemplateDefault");
335 Assert.AreEqual (0, dv.Rows.Count, "RowsDefault1");
336 Assert.AreEqual (typeof (DetailsViewRowCollection), dv.Rows.GetType (), "RowDefault2");
337 Assert.AreEqual (typeof (TableItemStyle), dv.RowStyle.GetType (), "RowStyleDefault");
338 Assert.AreEqual (null, dv.SelectedValue, "SelectedValueDefault");
339 Assert.AreEqual (null, dv.TopPagerRow, "TopPagerRow");
344 [Category ("NotWorking")]
345 public void DetailsView_AssignToDefaultProperties ()
347 PokerDetailsView dv = new PokerDetailsView ();
348 dv.AllowPaging = true;
349 dv.DataSource = myds;
351 Assert.AreEqual (true, dv.AllowPaging, "AllowPaging");
352 dv.AlternatingRowStyle.CssClass = "style.css";
353 Assert.AreEqual ("style.css", dv.AlternatingRowStyle.CssClass, "AlternatingRowStyle");
354 dv.AutoGenerateDeleteButton = true;
355 Assert.AreEqual (true, dv.AutoGenerateDeleteButton, "AutoGenerateDeleteButton");
356 dv.AutoGenerateEditButton = true;
357 Assert.AreEqual (true, dv.AutoGenerateEditButton, "AutoGenerateEditButton");
358 dv.AutoGenerateInsertButton = true;
359 Assert.AreEqual (true, dv.AutoGenerateInsertButton, "AutoGenerateInsertButton");
360 dv.AutoGenerateRows = false;
361 Assert.AreEqual (false, dv.AutoGenerateRows, "AutoGenerateRows");
362 dv.BackImageUrl = "image.jpg";
363 Assert.AreEqual ("image.jpg", dv.BackImageUrl, "BackImageUrl");
364 dv.Caption = "Caption Test";
365 Assert.AreEqual ("Caption Test", dv.Caption, "Caption");
366 dv.CaptionAlign = TableCaptionAlign.Right;
367 Assert.AreEqual (TableCaptionAlign.Right, dv.CaptionAlign, "CaptionAlign");
369 Assert.AreEqual (2, dv.CellPadding, "CellPadding");
371 Assert.AreEqual (5, dv.CellSpacing, "CellSpacing");
372 dv.CommandRowStyle.BackColor = Color.Purple;
373 Assert.AreEqual (Color.Purple, dv.CommandRowStyle.BackColor, "CommandRowStyle.BackColor");
374 dv.ChangeMode (DetailsViewMode.Insert);
375 Assert.AreEqual (DetailsViewMode.Insert, dv.CurrentMode, "CurrentModeInsert");
376 dv.ChangeMode (DetailsViewMode.Edit );
377 Assert.AreEqual (DetailsViewMode.Edit, dv.CurrentMode, "CurrentModeEdit");
378 Assert.AreEqual ("Item1", dv.DataItem, "DataItem");
379 Assert.AreEqual (6, dv.DataItemCount, "DataItemCount");
380 Assert.AreEqual (0, dv.DataItemIndex, "DataItemIndex");
381 string[] names ={ "test1", "test2", "test3" };
382 dv.DataKeyNames = names;
383 Assert.AreEqual (names, dv.DataKeyNames, "DataKeyNames");
384 dv.DefaultMode = DetailsViewMode.Edit;
385 Assert.AreEqual (DetailsViewMode.Edit, dv.DefaultMode, "DefaultModeEdit");
386 dv.DefaultMode = DetailsViewMode.Insert;
387 Assert.AreEqual (DetailsViewMode.Insert, dv.DefaultMode, "DefaultModeInsert");
388 dv.DefaultMode = DetailsViewMode.ReadOnly;
389 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.DefaultMode, "DefaultModeReadOnly");
390 dv.EditRowStyle.ForeColor = Color.Pink;
391 Assert.AreEqual (Color.Pink, dv.EditRowStyle.ForeColor, "EditRowStyle");
392 dv.EmptyDataRowStyle.HorizontalAlign = HorizontalAlign.Center;
393 Assert.AreEqual (HorizontalAlign.Center, dv.EmptyDataRowStyle.HorizontalAlign, "HorizontalAlignCenter");
394 dv.EmptyDataTemplate = new DTemplate ();
395 Assert.AreEqual (typeof (DTemplate), dv.EmptyDataTemplate.GetType() , "EmptyDataTemplate");
396 dv.EmptyDataText = "No Data";
397 Assert.AreEqual ("No Data", dv.EmptyDataText, "EmptyDataText");
398 dv.EnablePagingCallbacks = true;
399 Assert.AreEqual (true, dv.EnablePagingCallbacks, "EnablePagingCallbacks");
400 dv.FieldHeaderStyle.CssClass = "style.css";
401 Assert.AreEqual ("style.css", dv.FieldHeaderStyle.CssClass, "FieldHeaderStyle");
402 DataControlFieldCollection coll=new DataControlFieldCollection ();
403 dv.FooterStyle.HorizontalAlign = HorizontalAlign.Right ;
404 Assert.AreEqual (HorizontalAlign.Right, dv.FooterStyle.HorizontalAlign , "FooterStyle");
405 dv.FooterTemplate = new DTemplate ();
406 Assert.AreEqual (typeof(DTemplate ),dv.FooterTemplate.GetType() ,"FooterTemplate");
407 dv.FooterText = "Footer Text";
408 Assert.AreEqual ("Footer Text", dv.FooterText, "FooterText");
409 dv.GridLines = GridLines.Horizontal;
410 Assert.AreEqual (GridLines.Horizontal, dv.GridLines, "GridLinesHorizontal ");
411 dv.GridLines = GridLines.None;
412 Assert.AreEqual (GridLines.None , dv.GridLines, "GridLinesNone ");
413 dv.GridLines = GridLines.Vertical;
414 Assert.AreEqual (GridLines.Vertical, dv.GridLines, "GridLinesVertical ");
415 dv.GridLines = GridLines.Both;
416 Assert.AreEqual (GridLines.Both, dv.GridLines, "GridLinesBoth ");
417 dv.HeaderStyle.BorderColor = Color.PapayaWhip;
418 Assert.AreEqual (Color.PapayaWhip, dv.HeaderStyle.BorderColor, "HeaderStyle");
419 dv.HeaderTemplate = new DTemplate ();
420 Assert.AreEqual (typeof (DTemplate), dv.HeaderTemplate.GetType (), "HeaderTemplate");
421 dv.HeaderText = "Header Text";
422 Assert.AreEqual ("Header Text", dv.HeaderText, "HeaderText");
423 dv.HorizontalAlign = HorizontalAlign.Center;
424 Assert.AreEqual (HorizontalAlign.Center, dv.HorizontalAlign, "HorizontalAlignCenter");
425 dv.HorizontalAlign = HorizontalAlign.Justify;
426 Assert.AreEqual (HorizontalAlign.Justify , dv.HorizontalAlign, "HorizontalAlignJustify");
427 dv.HorizontalAlign = HorizontalAlign.Left ;
428 Assert.AreEqual (HorizontalAlign.Left , dv.HorizontalAlign, "HorizontalAlignLeft");
429 dv.HorizontalAlign = HorizontalAlign.NotSet ;
430 Assert.AreEqual (HorizontalAlign.NotSet , dv.HorizontalAlign, "HorizontalAlignNotSet");
431 dv.HorizontalAlign = HorizontalAlign.Right ;
432 Assert.AreEqual (HorizontalAlign.Right , dv.HorizontalAlign, "HorizontalAlignRight");
433 dv.InsertRowStyle.BackColor = Color.PeachPuff;
434 Assert.AreEqual (Color.PeachPuff, dv.InsertRowStyle.BackColor, "InsertRowStyle");
435 Assert.AreEqual (6, dv.PageCount, "PageCount");
436 Assert.AreEqual (0, dv.PageIndex, "PageIndex");
437 dv.PagerSettings.LastPageImageUrl = "image.jpg";
438 Assert.AreEqual ("image.jpg", dv.PagerSettings.LastPageImageUrl, "PagerSettings");
439 dv.PagerStyle.CssClass = "style.css";
440 Assert.AreEqual ("style.css", dv.PagerStyle.CssClass, "PagerStyle");
441 dv.PagerTemplate = new DTemplate ();
442 Assert.AreEqual (typeof (DTemplate), dv.PagerTemplate.GetType (), "PagerTemplate");
443 Assert.AreEqual (1, dv.Rows.Count, "Rows");
444 dv.RowStyle.BackColor = Color.Plum ;
445 Assert.AreEqual (Color.Plum, dv.RowStyle.BackColor, "RowStyle");
446 dv.FooterRow.CssClass="style.css";
447 Assert.AreEqual ("style.css", dv.FooterRow.CssClass , "FooterRow");
448 dv.HeaderRow.BackColor =Color.Pink ;
449 Assert.AreEqual (Color.Pink, dv.HeaderRow.BackColor, "HeaderRow");
454 public void DetailsView_DefaultProtectedProperties ()
456 PokerDetailsView dv = new PokerDetailsView ();
457 Assert.AreEqual (HtmlTextWriterTag.Table, dv.PokerTagKey, "TagKey");
461 [Category ("NotWorking")]
462 public void DetailsView_AssignedPropertiesRender ()
464 string RenderedPageHtml = new WebTest ("DetailsViewProperties1.aspx").Run ();
465 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("starttest") + 9, RenderedPageHtml.IndexOf ("endtest") - RenderedPageHtml.IndexOf ("starttest") - 9);
466 string origHtmlValue = @" <div>
468 <table cellspacing=""20"" cellpadding=""30"" rules=""all"" border=""1"" id=""DetailsView1"" style=""height:50px;width:125px;background-image:url(Blue%20hills.jpg);"">
469 <caption align=""Bottom"">
472 <td>ID</td><td>1001</td>
474 <td>FName</td><td>Mahesh</td>
476 <td>LName</td><td>Chand</td>
481 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderDetailsViewProperties1");
482 Assert.AreEqual (true,origHtmlValue.Contains (@"cellpadding=""30"""),"CellpaddingRender");
483 Assert.AreEqual (true, origHtmlValue.Contains (@"cellspacing=""20"""), "CellspacingRender");
484 Assert.AreEqual (true, origHtmlValue.Contains ("Caption Test"), "CaptionRender");
485 Assert.AreEqual (true, origHtmlValue.Contains (@"caption align=""Bottom"""), "CaptionalignRender");
486 Assert.AreEqual (true, origHtmlValue.Contains ("Blue%20hills.jpg"), "BackImageRender");
487 Assert.AreEqual (true, origHtmlValue.Contains ("Blue%20hills.jpg"), "BackImageRender");
488 //GridLines and HorizontalAlign were set but can not be shown in this rendering.
493 [Category ("NunitWeb")]
494 [Category ("NotWorking")]
495 public void DetailsView_EmptyDataTextPropertyRender ()
497 PageDelegate pd = new PageDelegate (DetailsView_EmptyDataTextProperty);
498 WebTest t = new WebTest (PageInvoker.CreateOnLoad (pd));
499 string result = t.Run ();
500 FormRequest fr = new FormRequest (t.Response, "form1");
501 fr.Controls.Add ("__EVENTTARGET");
502 fr.Controls.Add ("__EVENTARGUMENT");
503 fr.Controls["__EVENTTARGET"].Value = "LinkButton1";
504 fr.Controls["__EVENTARGUMENT"].Value = "";
506 //t.Invoker = PageInvoker.CreateOnLoad (pd);
508 string newHtml = HtmlDiff.GetControlFromPageHtml (result);
509 string origHtml=@"<div>
510 <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
515 </div><a id=""LinkButton1"" href=""javascript:__doPostBack('LinkButton1','')"">Test</a>";
516 HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyDataTextTest");
521 public static void DetailsView_EmptyDataTextProperty (Page p)
523 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
524 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
526 PokerDetailsView dv = new PokerDetailsView ();
527 dv.DataSource = new ArrayList ();
528 dv.EmptyDataText = "Empty Data";
529 LinkButton lb = new LinkButton ();
530 lb.ID = "LinkButton1";
533 p.Form.Controls.Add (lcb);
534 p.Form.Controls.Add (dv);
536 p.Form.Controls.Add (lb);
537 p.Form.Controls.Add (lce);
539 //ToDo: Add more properties rendering tests (PageSettings,AutoGeneratedRows etc...)
545 public void DetailsView_ChangeMode ()
547 PokerDetailsView dv = new PokerDetailsView ();
548 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.CurrentMode, "ChangeModeDefault");
549 dv.ChangeMode (DetailsViewMode.Insert);
550 Assert.AreEqual (DetailsViewMode.Insert, dv.CurrentMode, "ChangeModeInsert");
551 dv.ChangeMode (DetailsViewMode.Edit);
552 Assert.AreEqual (DetailsViewMode.Edit, dv.CurrentMode, "ChangeModeEdit");
553 dv.ChangeMode (DetailsViewMode.ReadOnly);
554 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.CurrentMode, "ChangeModeReadOnly");
558 [Category ("NotWorking")]
559 public void FormView_DataBind ()
561 PokerDetailsView dv = new PokerDetailsView ();
562 dv.AllowPaging = true;
563 dv.DataSource = myds;
564 Assert.AreEqual (0, dv.PageCount, "BeforeDataBind1");
565 Assert.AreEqual (null, dv.DataItem, "BeforeDataBind2");
567 Assert.AreEqual (6, dv.PageCount, "AfterDataBind1");
568 Assert.AreEqual (6, dv.DataItemCount, "AfterDataBind2");
569 Assert.AreEqual ("Item1", dv.DataItem, "AfterDataBind3");
573 [Category ("NotWorking")]
574 public void FormView_IsBindableType ()
576 bool isBindable = false;
577 PokerDetailsView dv = new PokerDetailsView ();
578 isBindable = dv.IsBindableType (typeof (Decimal));
579 Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
580 isBindable = dv.IsBindableType (typeof (Int32));
581 Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
582 isBindable = dv.IsBindableType (typeof (String));
583 Assert.AreEqual (true, isBindable, "IsBindableTypeString");
584 isBindable = dv.IsBindableType (typeof (Boolean));
585 Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
586 isBindable = dv.IsBindableType (typeof (DateTime));
587 Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
588 isBindable = dv.IsBindableType (typeof (Byte));
589 Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
590 isBindable = dv.IsBindableType (typeof (Guid));
591 Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
592 isBindable = dv.IsBindableType (typeof (DTemplate));
593 Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
597 private bool isDeleted = false;
600 [Category ("NotWorking")]
601 public void DetailsView_DeleteItemHandler ()
603 PokerDetailsView dv = new PokerDetailsView ();
604 dv.DataSource = myds;
606 Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
607 dv.ItemDeleting += new DetailsViewDeleteEventHandler (dv_DeleteingHandler);
609 Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
613 public void dv_DeleteingHandler (Object sender, DetailsViewDeleteEventArgs e)
619 [Category ("NunitWeb")]
620 [Category ("NotWorking")]
621 public void DetailsView_DeleteItemTest ()
623 string html = new WebTest (PageInvoker.CreateOnLoad (
624 new PageDelegate (DetailsView_DeleteItem))).Run ();
625 string newHtml = HtmlDiff.GetControlFromPageHtml (html);
626 string origHtml = @"<div>
627 <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
629 <td>ID</td><td>1002</td>
631 <td>FName</td><td>Melanie</td>
633 <td>LName</td><td>Talmadge</td>
635 <td colspan=""2""><table border=""0"">
637 <td><span>1</span></td><td><a href=""javascript:__doPostBack('ctl01','Page$2')"">2</a></td>
643 HtmlDiff.AssertAreEqual (origHtml, newHtml, "DeleteItemMethod");
646 public static void DetailsView_DeleteItem (Page p)
648 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
649 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
650 PokerDetailsView dv = new PokerDetailsView ();
651 ObjectDataSource ds = new ObjectDataSource ();
652 ds.ID = "ObjectDataSource1";
653 ds.TypeName = "MonoTests.System.Web.UI.WebControls.TableObject";
654 ds.SelectMethod = "GetMyData";
655 ds.DeleteMethod = "Delete";
656 ds.InsertMethod = "Insert";
657 ds.UpdateMethod = "Update";
658 Parameter p1 = new Parameter ("ID", TypeCode.String);
659 Parameter p2 = new Parameter ("FName", TypeCode.String);
660 Parameter p3 = new Parameter ("LName", TypeCode.String);
661 ds.DeleteParameters.Add (p1);
662 ds.DeleteParameters.Add (p2);
663 ds.DeleteParameters.Add (p3);
666 p.Form.Controls.Add (lcb);
667 p.Form.Controls.Add (dv);
668 p.Form.Controls.Add (ds);
669 p.Form.Controls.Add (lce);
670 dv.AllowPaging = true;
671 dv.DataKeyNames = new string[] { "ID", "FName", "LName" };
672 dv.DataSourceID = "ObjectDataSource1";
677 //ToDo: InsertItem method should be checked using postback
678 private bool insertItem = false;
680 [Category ("NotWorking")]
681 public void DetailsView_InsertItem ()
683 PokerDetailsView dv = new PokerDetailsView ();
684 dv.ChangeMode (DetailsViewMode.Insert);
685 dv.ItemInserting += new DetailsViewInsertEventHandler (insert_item);
686 Assert.AreEqual (false, insertItem, "BeforeInsertItem");
687 dv.InsertItem (true);
688 Assert.AreEqual (true, insertItem, "AfterInsertItem");
692 public void insert_item (object sender, DetailsViewInsertEventArgs e)
697 //ToDo: UpdateItem method should be checked using postback
698 private bool updateItem = false;
700 [Category ("NotWorking")]
701 public void DetailsView_UpdateItem ()
703 PokerDetailsView dv = new PokerDetailsView ();
704 dv.ChangeMode (DetailsViewMode.Edit);
705 dv.ItemUpdating += new DetailsViewUpdateEventHandler (update_item);
706 Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
707 dv.UpdateItem (true);
708 Assert.AreEqual (true, updateItem, "AfterUpdateItem");
712 public void update_item (object sender, DetailsViewUpdateEventArgs e)
720 [Category ("NotWorking")]
721 public void DetailsView_CreateAutoGeneratedRows ()
723 PokerDetailsView dv = new PokerDetailsView ();
724 DataTable ds = TableObject.CreateDataTable ();
727 ICollection col = dv.DoCreateAutoGeneratedRows (dv.DataItem);
728 Assert.AreEqual (typeof(ArrayList),col.GetType (),"CreateAutoGeneratedRowsType");
729 Assert.AreEqual (3, col.Count , "CreateAutoGeneratedRowsCount");
730 Assert.AreEqual (typeof (AutoGeneratedField), ((ArrayList) col)[0].GetType (), "AutoGeneratedRowType");
731 Assert.AreEqual ("ID", ((ArrayList) col)[0].ToString (), "AutoGeneratedRowName1");
732 Assert.AreEqual ("FName", ((AutoGeneratedField)((ArrayList) col)[1]).HeaderText, "AutoGeneratedRowName2");
733 Assert.AreEqual ("LName", ((AutoGeneratedField) ((ArrayList) col)[2]).SortExpression , "AutoGeneratedRowName3");
738 [Category ("NotWorking")]
739 public void DetailsView_CreateAutoGenerateRow ()
741 PokerDetailsView dv = new PokerDetailsView ();
742 AutoGeneratedFieldProperties prop = new AutoGeneratedFieldProperties ();
743 prop.Name = "FieldItem";
744 prop.Type = typeof(String);
745 AutoGeneratedField field = dv.DoCreateAutoGeneratedRow (prop);
746 Assert.AreEqual (typeof (string), field.DataType, "FieldDataType");
747 Assert.AreEqual ("FieldItem", field.HeaderText, "FieldHeaderText");
748 Assert.AreEqual ("FieldItem",field.SortExpression ,"FieldSortExpretion");
749 Assert.AreEqual (typeof(AutoGeneratedField), field.GetType (), "AutoGeneratedFieldType");
754 [Category ("NotWorking")]
755 public void DetailsView_CreateChildControls ()
757 PokerDetailsView dv = new PokerDetailsView ();
758 Assert.AreEqual (6,dv.DoCreateChildControls (myds, true),"CreateChildControls1");
759 Assert.AreEqual (6, dv.DoCreateChildControls (myds, false), "CreateChildControls2");
763 [Category ("NotWorking")]
764 public void DetailsView_CreateControlStyle ()
766 PokerDetailsView dv = new PokerDetailsView ();
767 Style style = dv.DoCreateControlStyle ();
768 Assert.AreEqual (0, ((TableStyle) style).CellSpacing, "CreateControlStyle1");
769 Assert.AreEqual (GridLines.Both, ((TableStyle) style).GridLines, "CreateControlStyle2");
774 [Category ("NotWorking")]
775 public void DetailsView_CreateRow ()
777 PokerDetailsView dv = new PokerDetailsView ();
778 DetailsViewRow row = dv.DoCreateRow (1, DataControlRowType.DataRow, DataControlRowState.Alternate);
779 Assert.AreEqual (1, row.RowIndex, "rowIndex1");
780 Assert.AreEqual (DataControlRowType.DataRow, row.RowType, "RowType1");
781 Assert.AreEqual (DataControlRowState.Alternate, row.RowState, "RowState1");
782 row = dv.DoCreateRow (2, DataControlRowType.Header, DataControlRowState.Insert);
783 Assert.AreEqual (2, row.RowIndex, "rowIndex2");
784 Assert.AreEqual (DataControlRowType.Header , row.RowType, "RowType2");
785 Assert.AreEqual (DataControlRowState.Insert , row.RowState, "RowState2");
786 row = dv.DoCreateRow (3, DataControlRowType.EmptyDataRow , DataControlRowState.Selected );
787 Assert.AreEqual (3, row.RowIndex, "rowIndex3");
788 Assert.AreEqual (DataControlRowType.EmptyDataRow , row.RowType, "RowType3");
789 Assert.AreEqual (DataControlRowState.Selected , row.RowState, "RowState3");
790 DetailsViewPagerRow pagerRow = (DetailsViewPagerRow )dv.DoCreateRow (5, DataControlRowType.Pager , DataControlRowState.Edit );
791 Assert.AreEqual (5, pagerRow.RowIndex, "rowIndex4");
792 Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "RowType4");
793 Assert.AreEqual (DataControlRowState.Edit, pagerRow.RowState, "RowState4");
799 [Category ("NotWorking")]
800 public void DetailsView_CreateTable ()
802 PokerDetailsView dv = new PokerDetailsView ();
803 Table tb = dv.DoCreateTable();
804 Assert.AreEqual (null, tb.Parent, "CreateTable1");
805 Assert.AreEqual ("", tb.BackImageUrl, "CreateTable2");
806 Assert.AreEqual (0, tb.Rows.Count, "CreateTable3");
807 Assert.AreEqual (null, tb.ClientID , "CreateTable3");
808 dv.ID = "testId"; //private filed _parentID should be set to "testId"
809 tb = dv.DoCreateTable ();
810 Assert.AreEqual (-1, tb.CellSpacing, "CreateTable4");
811 Assert.AreEqual (HorizontalAlign.NotSet , tb.HorizontalAlign , "CreateTable5");
815 [Category ("NotWorking")]
816 public void DetailsView_EnsureDataBound ()
818 ObjectDataSource ds = new ObjectDataSource ();
819 ds.ID = "ObjectDataSource1";
820 ds.TypeName = "System.Guid";
821 ds.SelectMethod = "ToByteArray";
822 Page p = new Page ();
823 PokerDetailsView dv = new PokerDetailsView ();
828 dv.DataSourceID = "ObjectDataSource1";
829 Assert.AreEqual (false, dv.ensureDataBound, "BeforeEnsureDataBound");
830 dv.DoConfirmInitState ();
831 dv.DoOnPreRender (EventArgs.Empty);
832 Assert.AreEqual (true, dv.ensureDataBound, "AfterEnsureDataBound");
836 [Category ("NotWorking")]
837 public void DetailsView_ExtractRowValues ()
839 PokerDetailsView dv = new PokerDetailsView ();
840 DataTable ds = TableObject.CreateDataTable ();
843 OrderedDictionary fieldsValues = new OrderedDictionary ();
844 dv.DoExtractRowValues (fieldsValues, true, true);
845 Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
846 Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
847 Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
848 Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
849 IDictionaryEnumerator enumerator=fieldsValues.GetEnumerator ();
850 enumerator.MoveNext ();
851 Assert.AreEqual ("ID",enumerator.Key,"FieldValue1");
852 Assert.AreEqual ("1001", enumerator.Value , "FieldValue2");
853 enumerator.MoveNext ();
854 Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
855 Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
856 enumerator.MoveNext ();
857 Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
858 Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
859 fieldsValues = new OrderedDictionary ();
860 dv.DoExtractRowValues (fieldsValues, false, false);
861 Assert.AreEqual (0, fieldsValues.Count, "ExtractRowValues-NotReadOnly1");
862 fieldsValues = new OrderedDictionary ();
863 dv.DoExtractRowValues (fieldsValues, true, false);
864 Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues-NoPrimaryKeys1");
865 Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues-NoPrimaryKeys2");
866 fieldsValues = new OrderedDictionary ();
867 dv.DoExtractRowValues (fieldsValues, false, true);
868 Assert.AreEqual (0, fieldsValues.Count, "ExtractRowValues-NotReadOnly2");
869 Assert.AreEqual (0, fieldsValues.Keys.Count, "ExtractRowValues-NotReadOnly3");
873 [Category ("NotWorking")]
874 public void DetailsView_CreateFiledSet ()
876 DataTable ds = TableObject.CreateDataTable ();
877 PokerDetailsView dv1=new PokerDetailsView ();
880 ICollection fieldSet1 = dv1.DoCreateFieldSet ("FieldTest",true);
881 Assert.AreEqual (1, fieldSet1.Count, "FiledSetCount");
882 Assert.AreEqual ("Item", ((ArrayList) fieldSet1)[0].ToString (), "FieldSetCount");
883 PokerDetailsView dv2 = new PokerDetailsView ();
886 ICollection fieldSet2 = dv2.DoCreateFieldSet ("FieldTest", false);
887 Assert.AreEqual (3, fieldSet2.Count, "FiledSetCount");
888 Assert.AreEqual ("ID", ((ArrayList) fieldSet2)[0].ToString (), "FieldValue1");
889 Assert.AreEqual (typeof (Int32), ((AutoGeneratedField) ((ArrayList) fieldSet2)[0]).DataType, "FieldType1");
890 Assert.AreEqual ("FName", ((ArrayList) fieldSet2)[1].ToString (), "FieldValue2");
891 Assert.AreEqual (typeof (String), ((AutoGeneratedField) ((ArrayList) fieldSet2)[1]).DataType, "FieldType2");
892 Assert.AreEqual ("LName", ((ArrayList) fieldSet2)[2].ToString (), "FieldValue3");
893 Assert.AreEqual (typeof (String), ((AutoGeneratedField) ((ArrayList) fieldSet2)[2]).DataType, "FieldType3");
899 [Category ("NotWorking")]
900 public void DetailsView_GetCallBackResult ()
902 PokerDetailsView dv = new PokerDetailsView ();
903 Page p = new Page ();
905 DataTable ds = TableObject.CreateDataTable ();
908 string callbackResult=@"<table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
910 <td>ID</td><td>1001</td>
912 <td>FName</td><td>Mahesh</td>
914 <td>LName</td><td>Chand</td>
917 HtmlDiff.AssertAreEqual (callbackResult, dv.DoGetCallbackResult().Substring(dv.DoGetCallbackResult().IndexOf ("<table")), "GetCallbackResult");
922 public void DetailsView_GetCallbackScript ()
928 [Category ("NotWorking")]
929 public void DetailsView_InitializePager ()
931 PokerDetailsView dv = new PokerDetailsView ();
932 Page page = new Page ();
933 dv.AllowPaging = true;
934 dv.DataSource = myds;
935 page.Controls.Add (dv);
936 Assert.AreEqual (0, dv.PageCount, "BeforeInitializePagerPageCount");
937 Assert.AreEqual (false, dv.isInitializePager, "BeforeInitializePager");
939 Assert.AreEqual (true, dv.isInitializePager, "AfterInitializePager");
940 Assert.AreEqual (6, dv.PageCount, "AfterInitializePagerPageCount");
944 public void DetailsView_InitializeRow ()
950 [Category ("NotWorking")]
951 public void DetailsView_PerformDataBinding ()
953 PokerDetailsView dv = new PokerDetailsView ();
954 Assert.AreEqual (0, dv.DataItemCount, "BeforePerformDataBinding");
955 dv.DoPerformDataBinding (myds);
956 Assert.AreEqual (6, dv.DataItemCount, "AfterPerformDataBinding");
960 [Category ("NotWorking")]
961 public void DetailsView_PrepareControlHierarchy ()
963 PokerDetailsView dv = new PokerDetailsView ();
965 Assert.AreEqual (0, dv.Controls.Count, "ControlHierarchy1");
966 Assert.AreEqual (true, dv.controlHierarchy, "ControlHierarchy2");
967 dv.controlHierarchy = false;
968 dv.AllowPaging = true;
969 dv.DataSource = myds;
972 Assert.AreEqual (1, dv.Controls.Count, "ControlHierarchy3");
973 Assert.AreEqual (true, dv.controlHierarchy, "ControlHierarchy4");
974 Button bt = new Button ();
975 dv.Controls.Add (bt);
976 dv.controlHierarchy = false;
978 Assert.AreEqual (2, dv.Controls.Count, "ControlHierarchy3");
979 Assert.AreEqual (true, dv.controlHierarchy, "ControlHierarchy4");
984 [Category ("NotWorking")]
985 public void DetailsView_FooterTemplateRender ()
987 //Footer Template property is checked.
988 string RenderedPageHtml = new WebTest ("FooterTemplateTest.aspx").Run ();
989 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("starttest")+9, RenderedPageHtml.IndexOf ("endtest") - RenderedPageHtml.IndexOf ("starttest")-9);
990 string origHtmlValue = @" <div>
992 <table cellspacing=""0"" rules=""all"" border=""1"" id=""DetailsView1"" style=""height:50px;width:125px;border-collapse:collapse;"">
994 <td>ID</td><td>1001</td>
996 <td>FName</td><td>Mahesh</td>
998 <td>LName</td><td>Chand</td>
1001 Footer Template Test<a id=""DetailsView1_HyperLink1"">Footer</a>
1004 <td colspan=""2""><table border=""0"">
1006 <td><span>1</span></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$2')"">2</a></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$3')"">3</a></td>
1015 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderFooterTemplate");
1019 [Category ("NotWorking")]
1020 public void DetailsView_RenderHeaderTemplate ()
1022 //Header Template property is checked
1023 string RenderedPageHtml = new WebTest ("DetailsViewTemplates.aspx").Run ();
1024 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test1") + 5, RenderedPageHtml.IndexOf ("test2") - RenderedPageHtml.IndexOf ("test1") - 5);
1025 string origHtmlValue = @" <div>
1027 <table cellspacing=""0"" rules=""all"" border=""1"" id=""DetailsView1"" style=""height:50px;width:125px;border-collapse:collapse;"">
1030 Header Template<input type=""submit"" name=""DetailsView1$Button1"" value=""Header button"" id=""DetailsView1_Button1"" />
1033 <td>ID</td><td>1001</td>
1035 <td>FName</td><td>Mahesh</td>
1037 <td>LName</td><td>Chand</td>
1039 <td colspan=""2""><a href=""javascript:__doPostBack('DetailsView1','Delete$0')"">Delete</a></td>
1041 <td colspan=""2""><table border=""0"">
1043 <td><span>1</span></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$2')"">2</a></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$3')"">3</a></td>
1051 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderHeaderTemplate");
1055 [Category ("NotWorking")]
1056 public void DetailsView_PagerTemplateRender ()
1058 //Pager Template property is checked
1059 string RenderedPageHtml = new WebTest ("DetailsViewTemplates.aspx").Run ();
1060 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test2") + 5, RenderedPageHtml.IndexOf ("test3") - RenderedPageHtml.IndexOf ("test2") - 5);
1061 string origHtmlValue = @" <div>
1062 <table cellspacing=""0"" rules=""all"" border=""1"" id=""DetailsView2"" style=""height:50px;width:125px;border-collapse:collapse;"">
1064 <td>ID</td><td>1001</td>
1066 <td>FName</td><td>Mahesh</td>
1068 <td>LName</td><td>Chand</td>
1071 <input type=""submit"" name=""DetailsView2$ctl01$Button2"" value=""Prev"" id=""DetailsView2_ctl01_Button2"" />
1072 <input type=""submit"" name=""DetailsView2$ctl01$Button3"" value=""Next"" id=""DetailsView2_ctl01_Button3"" />
1078 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderPagerTemplate");
1082 [Category ("NotWorking")]
1083 public void DetailsView_EditFieldsRender ()
1085 string RenderedPageHtml = new WebTest ("DetailsViewTemplates.aspx").Run ();
1086 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test3") + 5, RenderedPageHtml.IndexOf ("endtest") - RenderedPageHtml.IndexOf ("test3") - 5);
1087 string origHtmlValue = @" </div>
1089 <table cellspacing=""0"" rules=""all"" border=""1"" id=""DetailsView3"" style=""height:50px;width:125px;border-collapse:collapse;"">
1091 <td>ID</td><td>1001</td>
1093 <td>FName</td><td>Mahesh</td>
1095 <td>LName</td><td>Chand</td>
1097 <td colspan=""2""><a href=""javascript:__doPostBack('DetailsView3','$0')"">TestButtonField</a></td>
1099 <td> </td><td><a></a></td>
1101 <td>Image field</td><td></td>
1103 <td> </td><td></td>
1105 <td>Template Field</td><td style=""background-color:#FFE0C0;""> </td>
1107 <td colspan=""2""><table border=""0"">
1109 <td><span>1</span></td><td><a href=""javascript:__doPostBack('DetailsView3','Page$2')"">2</a></td><td><a href=""javascript:__doPostBack('DetailsView3','Page$3')"">3</a></td>
1117 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderDataFields");
1121 [Category ("NunitWeb")]
1122 [Category ("NotWorking")]
1123 public void DetailsView_PagingPostback ()
1125 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1126 string pageHTML = t.Run ();
1127 pageHTML = pageHTML.Substring (pageHTML.IndexOf ("starttest") + 9, pageHTML.IndexOf ("endtest") - pageHTML.IndexOf ("starttest") - 9);
1128 string origHtmlValue = @" <div>
1129
1131 <table cellspacing=""0"" rules=""all"" border=""1"" id=""DetailsView1"" style=""height:50px;width:125px;border-collapse:collapse;"">
1133 <td>ID</td><td>1001</td>
1135 <td>FName</td><td>Mahesh</td>
1137 <td>LName</td><td>Chand</td>
1139 <td colspan=""2""><a href=""javascript:__doPostBack('DetailsView1','Edit$0')"">Edit</a> <a href=""javascript:__doPostBack('DetailsView1','Delete$0')"">Delete</a> <a href=""javascript:__doPostBack('DetailsView1','New$0')"">New</a></td>
1141 <td colspan=""2""><table border=""0"">
1143 <td><span>1</span></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$2')"">2</a></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$3')"">3</a></td>
1150 HtmlDiff.AssertAreEqual (origHtmlValue, pageHTML, "BeforePagingDataPostback");
1151 FormRequest fr = new FormRequest (t.Response, "form1");
1152 fr.Controls.Add ("__EVENTTARGET");
1153 fr.Controls.Add ("__EVENTARGUMENT");
1154 fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
1155 fr.Controls["__EVENTARGUMENT"].Value = "Page$2";
1157 pageHTML = t.Run ();
1158 pageHTML = pageHTML.Substring (pageHTML.IndexOf ("starttest") + 9, pageHTML.IndexOf ("endtest") - pageHTML.IndexOf ("starttest") - 9);
1159 origHtmlValue = @" <div>
1160
1162 <table cellspacing=""0"" rules=""all"" border=""1"" id=""DetailsView1"" style=""height:50px;width:125px;border-collapse:collapse;"">
1164 <td>ID</td><td>1002</td>
1166 <td>FName</td><td>Melanie</td>
1168 <td>LName</td><td>Talmadge</td>
1170 <td colspan=""2""><a href=""javascript:__doPostBack('DetailsView1','Edit$1')"">Edit</a> <a href=""javascript:__doPostBack('DetailsView1','Delete$1')"">Delete</a> <a href=""javascript:__doPostBack('DetailsView1','New$1')"">New</a></td>
1172 <td colspan=""2""><table border=""0"">
1174 <td><a href=""javascript:__doPostBack('DetailsView1','Page$1')"">1</a></td><td><span>2</span></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$3')"">3</a></td>
1181 HtmlDiff.AssertAreEqual (origHtmlValue, pageHTML, "AfterPagingDataPostback");
1186 [Category ("NunitWeb")]
1187 [Category ("NotWorking")]
1188 public void DetailsView_EditPostback ()
1190 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1191 string pageHTML = t.Run ();
1192 Assert.AreEqual (true, pageHTML.Contains ("Edit"), "BeforeEditPostback");
1193 FormRequest fr = new FormRequest (t.Response, "form1");
1194 fr.Controls.Add ("__EVENTTARGET");
1195 fr.Controls.Add ("__EVENTARGUMENT");
1196 fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
1197 fr.Controls["__EVENTARGUMENT"].Value = "Edit$0";
1199 pageHTML = t.Run ();
1200 pageHTML = pageHTML.Substring (pageHTML.IndexOf ("starttest") + 9, pageHTML.IndexOf ("endtest") - pageHTML.IndexOf ("starttest") - 9);
1201 string origHtmlValue = @" <div>
1202
1204 <table cellspacing=""0"" rules=""all"" border=""1"" id=""DetailsView1"" style=""height:50px;width:125px;border-collapse:collapse;"">
1206 <td>ID</td><td>1001</td>
1208 <td>FName</td><td>Mahesh</td>
1210 <td>LName</td><td>Chand</td>
1212 <td colspan=""2""><a href=""javascript:__doPostBack('DetailsView1$ctl01','')"">Update</a> <a href=""javascript:__doPostBack('DetailsView1','Cancel$0')"">Cancel</a></td>
1214 <td colspan=""2""><table border=""0"">
1216 <td><span>1</span></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$2')"">2</a></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$3')"">3</a></td>
1223 HtmlDiff.AssertAreEqual (origHtmlValue, pageHTML, "AfterEditPostback");
1229 [Category ("NunitWeb")]
1230 [Category ("NotWorking")]
1231 public void DetailsView_DeletePostback ()
1233 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1234 string pageHTML = t.Run ();
1235 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDeletePostback");
1236 FormRequest fr = new FormRequest (t.Response, "form1");
1237 fr.Controls.Add ("__EVENTTARGET");
1238 fr.Controls.Add ("__EVENTARGUMENT");
1239 fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
1240 fr.Controls["__EVENTARGUMENT"].Value = "Delete$0";
1242 pageHTML = t.Run ();
1243 pageHTML = pageHTML.Substring (pageHTML.IndexOf ("starttest") + 9, pageHTML.IndexOf ("endtest") - pageHTML.IndexOf ("starttest") - 9);
1244 string origHtmlValue = @" <div>
1245
1247 <table cellspacing=""0"" rules=""all"" border=""1"" id=""DetailsView1"" style=""height:50px;width:125px;border-collapse:collapse;"">
1249 <td>ID</td><td>1002</td>
1251 <td>FName</td><td>Melanie</td>
1253 <td>LName</td><td>Talmadge</td>
1255 <td colspan=""2""><a href=""javascript:__doPostBack('DetailsView1','Edit$0')"">Edit</a> <a href=""javascript:__doPostBack('DetailsView1','Delete$0')"">Delete</a> <a href=""javascript:__doPostBack('DetailsView1','New$0')"">New</a></td>
1257 <td colspan=""2""><table border=""0"">
1259 <td><span>1</span></td><td><a href=""javascript:__doPostBack('DetailsView1','Page$2')"">2</a></td>
1267 HtmlDiff.AssertAreEqual (origHtmlValue, pageHTML, "DeleteDataPostback");
1268 Assert.AreEqual (false, pageHTML.Contains ("1001"), "AfterDeletePostback");
1275 [Category ("NunitWeb")]
1276 [Category ("NotWorking")]
1277 public void DetailsView_InsertPostback ()
1280 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1281 string pageHTML = t.Run ();
1282 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDeletePostback");
1283 FormRequest fr = new FormRequest (t.Response, "form1");
1284 fr.Controls.Add ("__EVENTTARGET");
1285 fr.Controls.Add ("__EVENTARGUMENT");
1286 fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
1287 fr.Controls["__EVENTARGUMENT"].Value = "New$0";
1289 pageHTML = t.Run ();
1290 pageHTML = pageHTML.Substring (pageHTML.IndexOf ("starttest") + 9, pageHTML.IndexOf ("endtest") - pageHTML.IndexOf ("starttest") - 9);
1291 string origHtmlValue = @" <div>
1292
1294 <table cellspacing=""0"" rules=""all"" border=""1"" id=""DetailsView1"" style=""height:50px;width:125px;border-collapse:collapse;"">
1296 <td>ID</td><td><input name=""DetailsView1$ctl01"" type=""text"" title=""ID"" /></td>
1298 <td>FName</td><td><input name=""DetailsView1$ctl02"" type=""text"" title=""FName"" /></td>
1300 <td>LName</td><td><input name=""DetailsView1$ctl03"" type=""text"" title=""LName"" /></td>
1302 <td colspan=""2""><a href=""javascript:__doPostBack('DetailsView1$ctl04','')"">Insert</a> <a href=""javascript:__doPostBack('DetailsView1','Cancel$-1')"">Cancel</a></td>
1308 HtmlDiff.AssertAreEqual (origHtmlValue, pageHTML, "InsertDataPostback");
1313 [Category ("NotWorking")]
1314 public void DetailsView_ViewState ()
1316 PokerDetailsView dv = new PokerDetailsView ();
1317 PokerDetailsView copy = new PokerDetailsView ();
1318 dv.HeaderText = "Header";
1319 dv.GridLines = GridLines.Vertical;
1320 dv.CssClass = "style.css";
1321 object state = dv.SaveState ();
1322 copy.LoadState (state);
1323 Assert.AreEqual ("Header", copy.HeaderText, "ViewStateHeaderText");
1324 Assert.AreEqual (GridLines.Vertical, copy.GridLines, "ViewStateGridLines");
1325 Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
1329 [Category ("NotWorking")]
1330 public void DetailsView_ControlState ()
1333 PokerDetailsView dv = new PokerDetailsView ();
1334 PokerDetailsView copy = new PokerDetailsView ();
1335 string[] keys = new String[2];
1338 dv.DataKeyNames = keys;
1339 dv.BackImageUrl = "photo.jpg";
1340 dv.DefaultMode = DetailsViewMode.Insert;
1341 object state = dv.DoSaveControlState ();
1342 copy.DoLoadControlState (state);
1343 Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
1344 Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
1345 Assert.AreEqual (DetailsViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
1351 private bool itemCommand;
1352 private bool itemCreated;
1353 private bool itemDeleted;
1354 private bool itemDeleting;
1355 private bool itemInserted;
1356 private bool itemInserting;
1357 private bool itemUpdated;
1358 private bool itemUpdating;
1359 private bool modeChanged;
1360 private bool modeChanging;
1361 private bool pageIndexChanged;
1362 private bool pageIndexChanging;
1363 private bool pagePreLoad;
1364 private bool dataSourceViewChanged;
1365 private bool preRender;
1366 private bool unload;
1367 private int newPageIndex;
1369 public void ResetEvents ()
1372 itemCommand = false;
1373 itemCreated = false;
1374 itemDeleted = false;
1375 itemDeleting = false;
1376 itemInserted = false;
1377 itemInserting = false;
1378 itemUpdated = false;
1379 itemUpdating = false;
1380 modeChanged = false;
1381 modeChanging = false;
1382 pageIndexChanged = false;
1383 pageIndexChanging = false;
1384 pagePreLoad = false;
1385 dataSourceViewChanged = false;
1391 [Category ("NotWorking")]
1392 public void DetailsView_BubbleEvents ()
1395 DetailsViewCommandEventArgs com;
1396 PokerDetailsView dv = new PokerDetailsView ();
1397 Page page = new Page ();
1398 Button bt = new Button ();
1399 dv.AllowPaging = true;
1400 page.Controls.Add (dv);
1401 dv.ItemCommand += new DetailsViewCommandEventHandler (dv_ItemCommand );
1402 dv.ItemDeleted += new DetailsViewDeletedEventHandler (dv_ItemDeleted );
1404 dv.ItemDeleting += new DetailsViewDeleteEventHandler (dv_ItemDeleting );
1405 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
1406 Assert.AreEqual (false, itemCommand, "BeforeDeleteCommandBubbleEvent");
1407 Assert.AreEqual (false, itemDeleting, "BeforeDeleteBubbleEvent");
1408 dv.DoOnBubbleEvent (bt, com);
1409 Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
1410 Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
1413 itemCommand = false;
1414 dv.ItemInserting += new DetailsViewInsertEventHandler (dv_ItemInserting);
1415 dv.ChangeMode (DetailsViewMode.Insert);
1416 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
1417 Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
1418 Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
1419 dv.DoOnBubbleEvent (bt, com);
1420 Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
1421 Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
1424 itemCommand = false;
1425 dv.ItemUpdating += new DetailsViewUpdateEventHandler (dv_ItemUpdating);
1426 dv.ChangeMode (DetailsViewMode.Edit);
1427 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
1428 Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
1429 Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
1430 dv.DoOnBubbleEvent (bt, com);
1431 Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
1432 Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
1435 itemCommand = false;
1436 dv.ModeChanging += new DetailsViewModeEventHandler (dv_ModeChanging);
1437 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
1438 Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
1439 Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
1440 dv.DoOnBubbleEvent (bt, com);
1441 Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
1442 Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
1445 itemCommand = false;
1446 modeChanging = false;
1447 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
1448 Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
1449 Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
1450 dv.DoOnBubbleEvent (bt, com);
1451 Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
1452 Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
1455 itemCommand = false;
1456 modeChanging = false;
1457 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
1458 Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
1459 Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
1460 dv.DoOnBubbleEvent (bt, com);
1461 Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
1462 Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
1464 //Page Index default
1465 itemCommand = false;
1466 dv.PageIndexChanging += new DetailsViewPageEventHandler (dv_PageIndexChanging );
1467 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
1468 Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
1469 Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
1470 dv.DoOnBubbleEvent (bt, com);
1471 Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
1472 Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
1475 itemCommand = false;
1476 pageIndexChanging = false;
1477 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
1478 Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
1479 Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
1480 dv.DoOnBubbleEvent (bt, com);
1481 Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
1482 Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
1483 Assert.AreEqual (1, newPageIndex, "NextPageIndex");
1486 itemCommand = false;
1487 pageIndexChanging = false;
1488 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
1489 Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
1490 Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
1491 dv.DoOnBubbleEvent (bt, com);
1492 Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
1493 Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
1494 Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
1497 itemCommand = false;
1498 pageIndexChanging = false;
1499 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
1500 Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
1501 Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
1502 dv.DoOnBubbleEvent (bt, com);
1503 Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
1504 Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
1505 Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
1508 itemCommand = false;
1509 pageIndexChanging = false;
1510 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
1511 Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
1512 Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
1513 dv.DoOnBubbleEvent (bt, com);
1514 Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
1515 Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
1516 Assert.AreEqual (-1, newPageIndex, "FirstPageIndex");
1521 [Category ("NotWorking")]
1522 public void DetailsView_Events ()
1525 PokerDetailsView dv = new PokerDetailsView ();
1526 Button bt = new Button ();
1527 Page pg = new Page ();
1528 dv.Init += new EventHandler (dv_Init);
1529 dv.ItemCommand += new DetailsViewCommandEventHandler (dv_ItemCommand);
1530 dv.ItemCreated += new EventHandler (dv_ItemCreated);
1531 dv.ItemDeleted += new DetailsViewDeletedEventHandler (dv_ItemDeleted);
1532 dv.ItemDeleting += new DetailsViewDeleteEventHandler (dv_ItemDeleting);
1533 dv.ItemInserted += new DetailsViewInsertedEventHandler (dv_ItemInserted);
1534 dv.ItemInserting += new DetailsViewInsertEventHandler (dv_ItemInserting);
1535 dv.ItemUpdated += new DetailsViewUpdatedEventHandler (dv_ItemUpdated);
1536 dv.ItemUpdating += new DetailsViewUpdateEventHandler (dv_ItemUpdating);
1537 dv.ModeChanged += new EventHandler (dv_ModeChanged);
1538 dv.ModeChanging += new DetailsViewModeEventHandler (dv_ModeChanging);
1539 dv.PageIndexChanged += new EventHandler (dv_PageIndexChanged);
1540 dv.PageIndexChanging += new DetailsViewPageEventHandler (dv_PageIndexChanging);
1541 dv.DataBound += new EventHandler (dv_DataBound);
1542 dv.PreRender += new EventHandler (dv_PreRender);
1543 dv.Unload += new EventHandler (dv_Unload);
1544 Assert.AreEqual (false, init, "BeforeInit");
1545 dv.DoOnInit (new EventArgs ());
1546 Assert.AreEqual (true, init, "AfterInit");
1547 Assert.AreEqual (false, itemCommand, "BeforeItemCommand");
1548 dv.DoOnItemCommand (new DetailsViewCommandEventArgs (bt,new CommandEventArgs ("",null)));
1549 Assert.AreEqual (true, itemCommand , "AfterItemCommand");
1550 Assert.AreEqual (false, itemCreated, "BeforeItemCreated");
1551 dv.DoOnItemCreated (new EventArgs ());
1552 Assert.AreEqual (true, itemCreated, "AfterItemCreated");
1553 Assert.AreEqual (false, itemDeleted, "BeforeItemDeleted");
1554 dv.DoOnItemDeleted (new DetailsViewDeletedEventArgs (3, new Exception ()));
1555 Assert.AreEqual (true, itemDeleted, "AfterItemDeleted");
1556 Assert.AreEqual (false, itemDeleting, "BeforeItemDeleting");
1557 dv.DoOnItemDeleting(new DetailsViewDeleteEventArgs (2));
1558 Assert.AreEqual (true, itemDeleting, "AfterItemDeleting");
1559 Assert.AreEqual (false, itemInserted, "BeforeItemInserted");
1560 dv.DoOnItemInserted (new DetailsViewInsertedEventArgs (3,new Exception()));
1561 Assert.AreEqual (true, itemInserted, "AfterItemInserted");
1562 Assert.AreEqual (false, itemInserting, "BeforeItemInserting");
1563 dv.DoOnItemInserting (new DetailsViewInsertEventArgs (bt));
1564 Assert.AreEqual (true, itemInserting, "AfterItemInserting");
1565 Assert.AreEqual (false, itemUpdated, "BeforeItemUpdated");
1566 dv.DoOnItemUpdated (new DetailsViewUpdatedEventArgs (2,new Exception()));
1567 Assert.AreEqual (true, itemUpdated, "AfterItemUpdated");
1568 Assert.AreEqual (false, itemUpdating, "BeforeItemUpdating");
1569 dv.DoOnItemUpdating (new DetailsViewUpdateEventArgs (bt));
1570 Assert.AreEqual (true, itemUpdating, "AfterItemUpdating");
1571 Assert.AreEqual (false, modeChanged, "BeforeModeChanged");
1572 dv.DoOnModeChanged (new EventArgs ());
1573 Assert.AreEqual (true, modeChanged, "AfterModeChanged");
1574 Assert.AreEqual (false, modeChanging, "BeforeModeChanging");
1575 dv.DoOnModeChanging (new DetailsViewModeEventArgs (DetailsViewMode.Insert ,false));
1576 Assert.AreEqual (true, modeChanging, "AfterModeChanging");
1577 Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChanged");
1578 dv.DoOnPageIndexChanged (new EventArgs ());
1579 Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChanged");
1580 Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChanging");
1581 dv.DoOnPageIndexChanging (new DetailsViewPageEventArgs (2));
1582 Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChanging");
1583 //Assert.AreEqual (false, pagePreLoad, "BeforePagePreLoad");
1584 //dv.DoOnPagePreLoad (pg, new EventArgs ());
1585 //Assert.AreEqual (true, pagePreLoad, "AfterPagePreLoad");
1586 Assert.AreEqual (false, preRender, "BeforePreRender");
1587 dv.DoOnPreRender(new EventArgs ());
1588 Assert.AreEqual (true, preRender, "AfterPreRender");
1589 Assert.AreEqual (false, unload, "BeforeUnload");
1590 dv.DoOnUnload (new EventArgs ());
1591 Assert.AreEqual (true, unload, "AfterUnload");
1592 //Assert.AreEqual (false, dataSourceViewChanged, "BeforeDataSourceViewChanged");
1593 //dv.DoOnDataSourceViewChanged (bt, new EventArgs ());
1594 //Assert.AreEqual (true, dataSourceViewChanged, "AfterDataSourceViewChanged");
1601 void dv_DataBound(object sender, EventArgs e)
1603 dataSourceViewChanged = true;
1607 void dv_Unload (object sender, EventArgs e)
1612 void dv_PreRender (object sender, EventArgs e)
1617 void dv_PageIndexChanging (object sender, DetailsViewPageEventArgs e)
1619 pageIndexChanging = true;
1620 newPageIndex = e.NewPageIndex;
1623 void dv_PageIndexChanged (object sender, EventArgs e)
1625 pageIndexChanged = true;
1628 void dv_ModeChanging (object sender, DetailsViewModeEventArgs e)
1630 modeChanging = true;
1633 void dv_ModeChanged (object sender, EventArgs e)
1641 void dv_ItemUpdating (object sender, DetailsViewUpdateEventArgs e)
1643 itemUpdating = true;
1646 void dv_ItemUpdated (object sender, DetailsViewUpdatedEventArgs e)
1651 void dv_ItemInserting (object sender, DetailsViewInsertEventArgs e)
1653 itemInserting = true;
1656 void dv_ItemInserted (object sender, DetailsViewInsertedEventArgs e)
1658 itemInserted = true;
1661 void dv_ItemDeleting (object sender, DetailsViewDeleteEventArgs e)
1663 itemDeleting = true;
1666 void dv_ItemDeleted (object sender, DetailsViewDeletedEventArgs e)
1671 void dv_ItemCreated (object sender, EventArgs e)
1676 void dv_ItemCommand (object sender, DetailsViewCommandEventArgs e)
1681 void dv_Init (object sender, EventArgs e)
1689 [Category ("NotWorking")]
1690 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1691 public void CellPaddingException ()
1693 PokerDetailsView dv = new PokerDetailsView ();
1694 dv.CellPadding = -2;
1698 [Category ("NotWorking")]
1699 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1700 public void CellSpacingException ()
1702 PokerDetailsView dv = new PokerDetailsView ();
1703 dv.CellSpacing = -5;
1707 [Category ("NotWorking")]
1708 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1709 public void PageIndexException ()
1711 PokerDetailsView dv = new PokerDetailsView ();
1716 [Category ("NotWorking")]
1717 [ExpectedException (typeof (HttpException))]
1718 public void InsertItemException ()
1720 PokerDetailsView dv = new PokerDetailsView ();
1721 dv.InsertItem (true);
1725 [Category ("NotWorking")]
1726 [ExpectedException (typeof (HttpException))]
1727 public void UpdateItemException ()
1729 PokerDetailsView dv = new PokerDetailsView ();
1730 dv.UpdateItem (true);
1737 public class DTemplate : ITemplate
1740 Label l = new Label ();
1741 #region ITemplate Members
1743 public void InstantiateIn (Control container)
1745 container.Controls.Add (l);
1749 public void SetDataItem (object value)
1751 l.Text = value.ToString ();
1757 public class TableObject
1759 public static DataTable ds = CreateDataTable ();
1760 public static DataTable GetMyData ()
1765 public static DataTable Delete (string ID, string FName, string LName)
1767 DataRow dr = ds.Rows.Find (ID);
1768 ds.Rows.Remove (dr);
1773 public static DataTable Update (string ID, string FName, string LName)
1775 DataRow dr = ds.Rows.Find (ID);
1777 Label lbl = new Label ();
1778 lbl.Text = "ID doesn't exist. update only FName and LName";
1781 dr["FName"] = FName;
1782 dr["LName"] = LName;
1787 public static DataTable Insert (string ID, string FName, string LName)
1789 DataRow dr = ds.NewRow ();
1791 dr["FName"] = FName;
1792 dr["LName"] = LName;
1798 public static DataTable CreateDataTable ()
1801 DataTable aTable = new DataTable ("A");
1805 // Create ID column and add to the DataTable.
1807 dtCol = new DataColumn ();
1808 dtCol.DataType = Type.GetType ("System.Int32");
1809 dtCol.ColumnName = "ID";
1810 dtCol.AutoIncrement = true;
1811 dtCol.Caption = "ID";
1812 dtCol.ReadOnly = true;
1813 dtCol.Unique = true;
1815 // Add the column to the DataColumnCollection.
1817 aTable.Columns.Add (dtCol);
1819 // Create Name column and add to the table
1821 dtCol = new DataColumn ();
1822 dtCol.DataType = Type.GetType ("System.String");
1823 dtCol.ColumnName = "FName";
1824 dtCol.AutoIncrement = false;
1825 dtCol.Caption = "First Name";
1826 dtCol.ReadOnly = false;
1827 dtCol.Unique = false;
1828 aTable.Columns.Add (dtCol);
1831 // Create Last Name column and add to the table.
1833 dtCol = new DataColumn ();
1834 dtCol.DataType = Type.GetType ("System.String");
1835 dtCol.ColumnName = "LName";
1836 dtCol.AutoIncrement = false;
1837 dtCol.Caption = "Last Name";
1838 dtCol.ReadOnly = false;
1839 dtCol.Unique = false;
1840 aTable.Columns.Add (dtCol);
1843 // Create three rows to the table
1844 dtRow = aTable.NewRow ();
1846 dtRow["FName"] = "Mahesh";
1847 dtRow["LName"] = "Chand";
1848 aTable.Rows.Add (dtRow);
1851 dtRow = aTable.NewRow ();
1853 dtRow["FName"] = "Melanie";
1854 dtRow["LName"] = "Talmadge";
1855 aTable.Rows.Add (dtRow);
1857 dtRow = aTable.NewRow ();
1859 dtRow["FName"] = "Vinay";
1860 dtRow["LName"] = "Bansal";
1861 aTable.Rows.Add (dtRow);
1863 aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };