GridViewTest.cs 69 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098
  1. //
  2. // Tests for System.Web.UI.WebControls.GridView.cs
  3. //
  4. // Author:
  5. // Tal Klahr ([email protected])
  6. // Yoni Klain ([email protected])
  7. //
  8. // (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
  9. //
  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:
  17. //
  18. // The above copyright notice and this permission notice shall be
  19. // included in all copies or substantial portions of the Software.
  20. //
  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.
  28. // NOT TESTED :
  29. // ondatasourceviewchanged(),onpagepreload(),RaiseCallbackEvent(),RaisePostbackEvent
  30. #if NET_2_0
  31. using NUnit.Framework;
  32. using System;
  33. using System.IO;
  34. using System.Globalization;
  35. using System.Web;
  36. using System.Web.UI;
  37. using System.Web.UI.WebControls;
  38. using System.Collections;
  39. using MonoTests.SystemWeb.Framework;
  40. using MonoTests.stand_alone.WebHarness;
  41. using MyWebControl = System.Web.UI.WebControls;
  42. using System.Data;
  43. using System.Drawing;
  44. using System.Threading;
  45. namespace MonoTests.System.Web.UI.WebControls
  46. {
  47. class PokerGridView : GridView
  48. {
  49. public bool ifPagerInitilized;
  50. public bool dataPropertyChanged;
  51. public bool pagePreLoad;
  52. public bool controlHierarchy;
  53. public PokerGridView ()
  54. {
  55. TrackViewState ();
  56. }
  57. public object SaveState ()
  58. {
  59. return SaveViewState ();
  60. }
  61. public void LoadState (object o)
  62. {
  63. LoadViewState (o);
  64. }
  65. public StateBag StateBag
  66. {
  67. get { return base.ViewState; }
  68. }
  69. public HtmlTextWriterTag PTagKey
  70. {
  71. get { return base.TagKey;}
  72. }
  73. public string Render ()
  74. {
  75. StringWriter sw = new StringWriter ();
  76. HtmlTextWriter tw = new HtmlTextWriter (sw);
  77. Render (tw);
  78. return sw.ToString ();
  79. }
  80. public AutoGeneratedField DoCreateAutoGeneratedColumn (AutoGeneratedFieldProperties fieldProperties)
  81. {
  82. return base.CreateAutoGeneratedColumn (fieldProperties);
  83. }
  84. public int DoCreateChildControls (IEnumerable dataSource, bool dataBinding)
  85. {
  86. return base.CreateChildControls (dataSource, dataBinding);
  87. }
  88. public Table DoCreateChildTable ()
  89. {
  90. return base.CreateChildTable ();
  91. }
  92. public ICollection DoCreateColumns (PagedDataSource dataSource, bool useDataSource)
  93. {
  94. return base.CreateColumns (dataSource, useDataSource);
  95. }
  96. public Style DoCreateControlStyle ()
  97. {
  98. return base.CreateControlStyle ();
  99. }
  100. public GridViewRow doCreateRow (int rowIndex, int dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState)
  101. {
  102. return base.CreateRow (rowIndex, dataSourceIndex, rowType, rowState);
  103. }
  104. public string doGetCallbackResult ()
  105. {
  106. return base.GetCallbackResult ();
  107. }
  108. public string doGetCallbackScript (IButtonControl buttonControl, string argument)
  109. {
  110. return base.GetCallbackScript (buttonControl, argument);
  111. }
  112. protected override void InitializePager (GridViewRow row, int columnSpan, PagedDataSource pagedDataSource)
  113. {
  114. base.InitializePager (row, columnSpan, pagedDataSource);
  115. ifPagerInitilized = true;
  116. }
  117. protected override void InitializeRow (GridViewRow row, DataControlField[] fields)
  118. {
  119. base.InitializeRow (row, fields);
  120. }
  121. public bool DoOnBubbleEvent (object source, EventArgs e)
  122. {
  123. return base.OnBubbleEvent (source, e);
  124. }
  125. public void DoOnDataBinding (EventArgs e)
  126. {
  127. base.OnDataBinding (e);
  128. }
  129. public void DoOnDataBound (EventArgs e)
  130. {
  131. base.OnDataBound (e);
  132. }
  133. protected override void OnDataPropertyChanged ()
  134. {
  135. base.OnDataPropertyChanged ();
  136. dataPropertyChanged = true;
  137. }
  138. public void DoOnDataSourceViewChanged (object sender, EventArgs e)
  139. {
  140. base.OnDataSourceViewChanged (sender, e);
  141. }
  142. public void DoOnInit (EventArgs e)
  143. {
  144. base.OnInit (e);
  145. }
  146. public void DoOnLoad (EventArgs e)
  147. {
  148. base.OnLoad (e);
  149. }
  150. public void DoOnPageIndexChanged (EventArgs e)
  151. {
  152. base.OnPageIndexChanged (e);
  153. }
  154. public void DoOnPageIndexChanging (GridViewPageEventArgs e)
  155. {
  156. base.OnPageIndexChanging (e);
  157. }
  158. protected override void OnPagePreLoad (object sender, EventArgs e)
  159. {
  160. base.OnPagePreLoad (sender, e);
  161. pagePreLoad = true;
  162. }
  163. public void DoOnPreRender (EventArgs e)
  164. {
  165. base.OnPreRender (e);
  166. }
  167. public void DoOnRowCancelingEdit (GridViewCancelEditEventArgs e)
  168. {
  169. base.OnRowCancelingEdit (e);
  170. }
  171. public void DoOnRowCommand (GridViewCommandEventArgs e)
  172. {
  173. base.OnRowCommand (e);
  174. }
  175. public void DoOnRowCreated (GridViewRowEventArgs e)
  176. {
  177. base.OnRowCreated (e);
  178. }
  179. public void DoOnRowDataBound (GridViewRowEventArgs e)
  180. {
  181. base.OnRowDataBound (e);
  182. }
  183. public void DoOnRowDeleted (GridViewDeletedEventArgs e)
  184. {
  185. base.OnRowDeleted (e);
  186. }
  187. public void DoOnRowDeleting (GridViewDeleteEventArgs e)
  188. {
  189. base.OnRowDeleting (e);
  190. }
  191. public void DoOnRowEditing (GridViewEditEventArgs e)
  192. {
  193. base.OnRowEditing (e);
  194. }
  195. public void DoOnRowUpdated (GridViewUpdatedEventArgs e)
  196. {
  197. base.OnRowUpdated (e);
  198. }
  199. public void DoOnRowUpdating (GridViewUpdateEventArgs e)
  200. {
  201. base.OnRowUpdating (e);
  202. }
  203. public void DoOnSelectedIndexChanged (EventArgs e)
  204. {
  205. base.OnSelectedIndexChanged (e);
  206. }
  207. public void DoOnSelectedIndexChanging (GridViewSelectEventArgs e)
  208. {
  209. base.OnSelectedIndexChanging (e);
  210. }
  211. public void DoOnSorted (EventArgs e)
  212. {
  213. base.OnSorted (e);
  214. }
  215. public void DoOnSorting (GridViewSortEventArgs e)
  216. {
  217. base.OnSorting (e);
  218. }
  219. public void DoOnUnload (EventArgs e)
  220. {
  221. base.OnUnload (e);
  222. }
  223. public void DoPerformDataBinding (IEnumerable data)
  224. {
  225. base.PerformDataBinding (data);
  226. }
  227. protected override void PrepareControlHierarchy ()
  228. {
  229. base.PrepareControlHierarchy ();
  230. controlHierarchy = true;
  231. }
  232. public object DoSaveControlState ()
  233. {
  234. return base.SaveControlState ();
  235. }
  236. public void DoLoadControlState (object savedState)
  237. {
  238. base.LoadControlState (savedState);
  239. }
  240. }
  241. [Serializable]
  242. [TestFixture]
  243. public class GridViewTest
  244. {
  245. public const string BOOLFIELD = "bool";
  246. public const string STRINGFIELD = "str";
  247. ArrayList myds = new ArrayList ();
  248. public bool InitilizePager;
  249. [SetUp]
  250. public void SetupTestCase ()
  251. {
  252. Thread.Sleep (100);
  253. }
  254. [TestFixtureSetUp]
  255. public void GridViewInit ()
  256. {
  257. myds.Add ("Norway");
  258. myds.Add ("Sweden");
  259. myds.Add ("France");
  260. myds.Add ("Italy");
  261. myds.Add ("Israel");
  262. myds.Add ("Russia");
  263. }
  264. [Test]
  265. public void GridView_DefaultProperties ()
  266. {
  267. PokerGridView g = new PokerGridView ();
  268. Assert.AreEqual (0, g.StateBag.Count, "ViewState.Count");
  269. Assert.AreEqual (false, g.AllowPaging, "AllowPaging");
  270. Assert.AreEqual (false, g.AllowSorting, "AllowSorting");
  271. // The AlternatingRowStyle property is tested by the TableItemStyle test (already exists)
  272. Assert.AreEqual (true, g.AutoGenerateColumns, "AutoGenerateColumns");
  273. Assert.AreEqual (false, g.AutoGenerateDeleteButton, "AutoGenerateDeleteButton");
  274. Assert.AreEqual (false, g.AutoGenerateEditButton, "AutoGenerateEditButton");
  275. Assert.AreEqual (false, g.AutoGenerateSelectButton, "AutoGenerateSelectButton");
  276. Assert.AreEqual ("", g.BackImageUrl, "BackImageUrl");
  277. Assert.AreEqual (null, g.BottomPagerRow, "BottomPagerRow");
  278. Assert.AreEqual ("", g.Caption, "Caption");
  279. Assert.AreEqual (TableCaptionAlign.NotSet, g.CaptionAlign, "CaptionAlign");
  280. Assert.AreEqual (-1, g.CellPadding, "CellPadding");
  281. Assert.AreEqual (0, g.CellSpacing, "CellSpacing");
  282. // ToDo: The Columns property default value is tested by the DataControlFieldCollection and DataControlField tests
  283. Assert.AreEqual (0, g.DataKeyNames.Length, "DataKeyNames");
  284. // ToDo: The DataKeys property default value is tested by the DataKeyArray and DataKey tests
  285. Assert.AreEqual (-1, g.EditIndex, "EditIndex");
  286. // The EditRowStyle property is tested by the TableItemStyle test (already exists)
  287. // The EmptyDataRowStyle property is tested by the TableItemStyle test (already exists)
  288. Assert.AreEqual (null, g.EmptyDataTemplate, "EmptyDataTemplate");
  289. Assert.AreEqual ("", g.EmptyDataText, "EmptyDataText");
  290. Assert.AreEqual (false, g.EnableSortingAndPagingCallbacks, "EnableSortingAndPagingCallbacks");
  291. // The FooterStyle property is tested by the TableItemStyle test (already exists)
  292. Assert.AreEqual (GridLines.Both, g.GridLines, "GridLines");
  293. // The HeaderStyle property is tested by the TableItemStyle test (already exists)
  294. Assert.AreEqual (HorizontalAlign.NotSet, g.HorizontalAlign, "HorizontalAlign");
  295. Assert.AreEqual (0, g.PageIndex, "PageIndex");
  296. // ToDo: The PagerSettings property is tested by the PagerSettings test
  297. // The PagerStyle property is tested by the TableItemStyle test (already exists)
  298. Assert.AreEqual (null, g.PagerTemplate, "PagerTemplate");
  299. Assert.AreEqual (10, g.PageSize, "PageSize");
  300. Assert.AreEqual ("", g.RowHeaderColumn, "RowHeaderColumn");
  301. // ToDo: The Rows property is tested by the GridViewRowCollection and GridViewRow test
  302. // The RowStyle property is tested by the TableItemStyle test (already exists)
  303. Assert.AreEqual (false, g.ShowFooter, "ShowFooter");
  304. Assert.AreEqual (true, g.ShowHeader, "ShowHeader");
  305. Assert.AreEqual (SortDirection.Ascending, g.SortDirection, "SortDirection");
  306. Assert.AreEqual (null, g.TopPagerRow, "TopPagerRow");
  307. Assert.AreEqual (true, g.UseAccessibleHeader, "UseAccessibleHeader");
  308. }
  309. [Test]
  310. public void GridView_DefaultPropertiesNotWorking ()
  311. {
  312. PokerGridView g = new PokerGridView ();
  313. Assert.AreEqual (null, g.FooterRow, "FooterRow");
  314. Assert.AreEqual (null, g.HeaderRow, "HeaderRow");
  315. Assert.AreEqual (true, g.Visible, "ViewVisible");
  316. Assert.AreEqual (0, g.PageCount, "PageCount");
  317. Assert.AreEqual ("", g.SortExpression, "SortExpression");
  318. }
  319. [Test]
  320. public void GridView_AssignedProperties ()
  321. {
  322. PokerGridView g = new PokerGridView ();
  323. Assert.AreEqual (0, g.StateBag.Count, "ViewState.Count");
  324. g.AllowPaging = true;
  325. Assert.AreEqual (true, g.AllowPaging, "AllowPaging");
  326. g.AllowSorting = true;
  327. Assert.AreEqual (true, g.AllowSorting, "AllowSorting");
  328. g.AutoGenerateColumns = false;
  329. Assert.AreEqual (false, g.AutoGenerateColumns, "AutoGenerateColumns");
  330. g.AutoGenerateDeleteButton = true;
  331. Assert.AreEqual (true, g.AutoGenerateDeleteButton, "AutoGenerateDeleteButton");
  332. g.AutoGenerateEditButton = true;
  333. Assert.AreEqual (true, g.AutoGenerateEditButton, "AutoGenerateEditButton");
  334. g.AutoGenerateSelectButton = true;
  335. Assert.AreEqual (true, g.AutoGenerateSelectButton, "AutoGenerateSelectButton");
  336. g.BackImageUrl = "test";
  337. Assert.AreEqual ("test", g.BackImageUrl, "BackImageUrl");
  338. g.Caption = "test";
  339. Assert.AreEqual ("test", g.Caption, "Caption");
  340. g.CaptionAlign = TableCaptionAlign.Left;
  341. Assert.AreEqual (TableCaptionAlign.Left, g.CaptionAlign, "CaptionAlign");
  342. g.CellPadding = 0;
  343. Assert.AreEqual (0, g.CellPadding, "CellPadding");
  344. g.CellSpacing = 1;
  345. Assert.AreEqual (1, g.CellSpacing, "CellSpacing");
  346. // ToDo: The Columns property default value is tested by the DataControlFieldCollection and DataControlField tests
  347. string[] str = new String[1];
  348. str[0] = "test";
  349. g.DataKeyNames = str;
  350. Assert.AreEqual ("test", g.DataKeyNames[0], "DataKeyNames");
  351. // ToDo: The DataKeys property default value is tested by the DataKeyArray and DataKey tests
  352. g.EditIndex = 0;
  353. Assert.AreEqual (0, g.EditIndex, "EditIndex");
  354. // The EditRowStyle property default value is tested by the TableItemStyle test (already exists)
  355. // The EmptyDataRowStyle property default value is tested by the TableItemStyle test (already exists)
  356. MyWebControl.Image myImage = new MyWebControl.Image ();
  357. myImage.ImageUrl = "myimage.jpg";
  358. ImageTemplate template = new ImageTemplate ();
  359. template.MyImage = myImage;
  360. // end create template image
  361. g.EmptyDataTemplate = template;
  362. Assert.IsNotNull (g.EmptyDataTemplate, "EmptyDataTemplate");
  363. g.EmptyDataText = "test";
  364. Assert.AreEqual ("test", g.EmptyDataText, "EmptyDataText");
  365. g.EnableSortingAndPagingCallbacks = true;
  366. Assert.AreEqual (true, g.EnableSortingAndPagingCallbacks, "EnableSortingAndPagingCallbacks");
  367. // The FooterStyle property default value is tested by the TableItemStyle test (already exists)
  368. g.GridLines = GridLines.Horizontal;
  369. Assert.AreEqual (GridLines.Horizontal, g.GridLines, "GridLines");
  370. g.HorizontalAlign = HorizontalAlign.Justify;
  371. Assert.AreEqual (HorizontalAlign.Justify, g.HorizontalAlign, "HorizontalAlign");
  372. g.PageIndex = 1;
  373. Assert.AreEqual (1, g.PageIndex, "PageIndex");
  374. // ToDo: The PagerSettings property default value is tested by the PagerSettings test
  375. // The PagerStyle property default value is tested by the TableItemStyle test (already exists)
  376. g.PagerTemplate = template;
  377. Assert.IsNotNull (g.PagerTemplate, "PagerTemplate");
  378. g.PageSize = 5;
  379. Assert.AreEqual (5, g.PageSize, "PageSize");
  380. g.RowHeaderColumn = "test";
  381. Assert.AreEqual ("test", g.RowHeaderColumn, "RowHeaderColumn");
  382. // ToDo: The Rows property default value is tested by the GridViewRowCollection and GridViewRow test
  383. // The RowStyle property default value is tested by the TableItemStyle test (already exists)
  384. g.ShowFooter = true;
  385. Assert.AreEqual (true, g.ShowFooter, "ShowFooter");
  386. g.ShowHeader = false;
  387. Assert.AreEqual (false, g.ShowHeader, "ShowHeader");
  388. g.UseAccessibleHeader = false;
  389. Assert.AreEqual (false, g.UseAccessibleHeader, "UseAccessibleHeader");
  390. }
  391. [Test]
  392. public void GridView_DefaultProtectedProperties ()
  393. {
  394. PokerGridView g = new PokerGridView ();
  395. Assert.AreEqual (HtmlTextWriterTag.Table, g.PTagKey, "TagKey");
  396. }
  397. [Test]
  398. public void GridView_DataBind()
  399. {
  400. PokerGridView g = new PokerGridView ();
  401. g.DataSource = myds;
  402. g.DataBind ();
  403. Assert.AreEqual (6, g.Rows.Count, "DataBind");
  404. }
  405. bool rowcreatedchecker;
  406. bool deleteitemchecker;
  407. bool sortingaction;
  408. [Test]
  409. [Category ("NotWorking")]
  410. public void GridView_DeleteItem()
  411. {
  412. PokerGridView g = new PokerGridView ();
  413. Assert.AreEqual (false, deleteitemchecker, "DeleteItem#1");
  414. g.RowDeleting += new GridViewDeleteEventHandler (RowDeletingHandler);
  415. g.DeleteRow (0);
  416. Assert.AreEqual (true, deleteitemchecker, "DeleteItem#2");
  417. }
  418. protected void RowDeletingHandler (object sender, GridViewDeleteEventArgs e)
  419. {
  420. deleteitemchecker = true;
  421. }
  422. [Test]
  423. [Category ("NotWorking")]
  424. public void GridView_RowCreated ()
  425. {
  426. GridView g = new GridView ();
  427. g.RowCreated += new GridViewRowEventHandler (RowCreatedHandler);
  428. Assert.AreEqual (false, rowcreatedchecker, "RowCreated#1");
  429. ArrayList myds = new ArrayList ();
  430. myds.Add ("Norway");
  431. myds.Add ("Sweden");
  432. myds.Add ("France");
  433. myds.Add ("Italy");
  434. g.DataSource = myds;
  435. g.DataBind ();
  436. Assert.AreEqual (true, rowcreatedchecker, "RowCreated#2");
  437. }
  438. protected void RowCreatedHandler (object sender, GridViewRowEventArgs e)
  439. {
  440. if (e.Row.Cells.Count > 0)
  441. rowcreatedchecker = true;
  442. }
  443. [Test]
  444. public void GridView_Sort ()
  445. {
  446. PokerGridView g = new PokerGridView ();
  447. Assert.AreEqual (false, sortingaction, "BeforeSorting");
  448. g.Sorting += new GridViewSortEventHandler (Gridview_sorting);
  449. g.Sort("Item",SortDirection.Descending);
  450. Assert.AreEqual (true, sortingaction, "AfterSorting");
  451. }
  452. protected void Gridview_sorting (object sender, GridViewSortEventArgs e)
  453. {
  454. sortingaction = true;
  455. }
  456. [Test]
  457. public void GridView_IsBindableType ()
  458. {
  459. PokerGridView g = new PokerGridView ();
  460. Assert.AreEqual (true, g.IsBindableType (typeof (Int32)), "test");
  461. Assert.AreEqual (false, g.IsBindableType (typeof (Enum)), "test");
  462. }
  463. [Test]
  464. public void GridView_CreateAutoGeneratedColumn ()
  465. {
  466. PokerGridView g = new PokerGridView ();
  467. AutoGeneratedFieldProperties fp = new AutoGeneratedFieldProperties();
  468. fp.Name = "testfield";
  469. fp.Type = typeof (string);
  470. AutoGeneratedField gf = g.DoCreateAutoGeneratedColumn (fp);
  471. Assert.AreEqual (typeof (string), gf.DataType , "AutoGeneratedColumn#1");
  472. Assert.AreEqual ("testfield", gf.HeaderText, "AutoGeneratedColumn#2");
  473. Assert.AreEqual ("System.Web.UI.WebControls.AutoGeneratedField", gf.GetType ().ToString (), "AutoGeneratedColumn#3");
  474. }
  475. [Test]
  476. public void GridView_CreateChildControls ()
  477. {
  478. PokerGridView g = new PokerGridView ();
  479. g.DataSource = myds;
  480. Assert.AreEqual(6,g.DoCreateChildControls(myds,true),"CreateChildControls#1");
  481. }
  482. [Test]
  483. [Category ("NotWorking")]
  484. // LAMESPEC: msdn talks about number of row created by this method
  485. public void GridView_CreateChildControls_2 ()
  486. {
  487. PokerGridView g = new PokerGridView ();
  488. g.DataSource = myds;
  489. Assert.AreEqual (-1, g.DoCreateChildControls (myds, false), "CreateChildControls#2");
  490. }
  491. [Test]
  492. public void GridView_CreateChildTable () {
  493. PokerGridView g = new PokerGridView ();
  494. g.ID = "PokerGridView";
  495. g.Caption = "Caption";
  496. g.CaptionAlign = TableCaptionAlign.Right;
  497. g.CellPadding = 2;
  498. g.CellSpacing = 2;
  499. Table t = g.DoCreateChildTable ();
  500. Assert.IsNotNull (t, "CreateChildTable#1");
  501. Assert.AreEqual (false, t.ControlStyleCreated, "CreateChildTable#2");
  502. }
  503. [Test]
  504. public void GridView_CreateControlStyle ()
  505. {
  506. PokerGridView g = new PokerGridView ();
  507. g.BorderColor = Color.Red;
  508. g.BorderStyle = BorderStyle.Dashed;
  509. Style s = g.DoCreateControlStyle ();
  510. Assert.AreEqual (typeof(TableStyle), s.GetType(), "CreateControlStyle#1");
  511. Assert.AreEqual (((TableStyle) s).GridLines, GridLines.Both, "CreateControlStyle#2");
  512. Assert.AreEqual (((TableStyle) s).CellSpacing, 0, "CreateControlStyle#3");
  513. }
  514. [Test]
  515. public void GridView_CreateRow ()
  516. {
  517. PokerGridView g = new PokerGridView ();
  518. GridViewRow gr = g.doCreateRow(0, 0, DataControlRowType.Pager, DataControlRowState.Normal);
  519. Assert.AreEqual (0, gr.RowIndex, "CreateRow#1");
  520. Assert.AreEqual (0, gr.DataItemIndex, "CreateRow#2");
  521. Assert.AreEqual (DataControlRowType.Pager, gr.RowType, "CreateRow#3");
  522. Assert.AreEqual (DataControlRowState.Normal, gr.RowState, "CreateRow#4");
  523. }
  524. [Test]
  525. [Category ("NotWorking")]
  526. public void GridView_GetCallbackResult()
  527. {
  528. Page page = new Page ();
  529. PokerGridView g = new PokerGridView ();
  530. page.Controls.Add (g);
  531. string s = g.doGetCallbackResult ();
  532. if (s == null || s == string.Empty) {
  533. Assert.Fail ("GetCallbackResult");
  534. }
  535. }
  536. [Test]
  537. public void GridView_InitializePager ()
  538. {
  539. PokerGridView gv = new PokerGridView ();
  540. Page page = new Page ();
  541. page.Controls.Add (gv);
  542. gv.AllowPaging = true;
  543. gv.PageSize = 2;
  544. gv.DataSource = myds;
  545. Assert.AreEqual (false, gv.ifPagerInitilized, "BeforeInitializePagerRunned");
  546. Assert.AreEqual (0, gv.PageCount, "BeforeInitializePagerPageCount");
  547. gv.DataBind ();
  548. Assert.AreEqual (true, gv.ifPagerInitilized, "AfterInitializePagerRunned");
  549. Assert.AreEqual (3, gv.PageCount, "AfterInitializePagerPageCount");
  550. }
  551. [Test]
  552. public void GridView_InitializeRow ()
  553. {
  554. // not implemented yet
  555. }
  556. [Test]
  557. public void GridView_ViewState ()
  558. {
  559. PokerGridView gv = new PokerGridView ();
  560. PokerGridView copy = new PokerGridView ();
  561. gv.AllowPaging = true;
  562. gv.AllowSorting = true;
  563. gv.BackColor = Color.Red;
  564. object state = gv.SaveState ();
  565. copy.LoadState (state);
  566. Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");
  567. Assert.AreEqual (true, copy.AllowSorting, "ViewStateAllowSorting");
  568. Assert.AreEqual (Color.Red, copy.BackColor, "ViewStateBackColor");
  569. }
  570. // Private variables for bubble events
  571. private bool bubbledeleterow;
  572. private bool bubbleupdaterow;
  573. private bool bubbleeditingrow;
  574. private bool bubblesortint;
  575. private bool bubblecanceling;
  576. private bool bubbleselect;
  577. private bool bubblepage;
  578. private int newPageIndex;
  579. [Test]
  580. [Category ("NotWorking")]
  581. public void GridView_BubbleEvent ()
  582. {
  583. PokerGridView gv = new PokerGridView ();
  584. Page page = new Page ();
  585. LinkButton lb = new LinkButton ();
  586. gv.AllowPaging = true;
  587. page.Controls.Add (gv);
  588. //
  589. gv.RowDeleting += new GridViewDeleteEventHandler (gv_RowDeleting);
  590. gv.RowUpdating += new GridViewUpdateEventHandler (gv_RowUpdating);
  591. gv.RowEditing += new GridViewEditEventHandler (gv_RowEditing);
  592. gv.Sorting += new GridViewSortEventHandler (gv_Sorting);
  593. gv.RowCancelingEdit += new GridViewCancelEditEventHandler (gv_RowCancelingEdit);
  594. gv.SelectedIndexChanging+=new GridViewSelectEventHandler(gv_SelectedIndexChanging);
  595. gv.PageIndexChanging+=new GridViewPageEventHandler(gv_PageIndexChanging);
  596. // Delete
  597. GridViewCommandEventArgs com1 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Delete", null));
  598. Assert.AreEqual (false, bubbledeleterow, "BeforeBubbleEventDeleteRow");
  599. gv.DoOnBubbleEvent (gv, com1);
  600. Assert.AreEqual (true, bubbledeleterow, "AfterBubbleEventDeleteRow");
  601. // Update
  602. GridViewCommandEventArgs com2 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Update", null));
  603. Assert.AreEqual (false, bubbleupdaterow, "BeforeBubbleEventUpdateRow");
  604. gv.DoOnBubbleEvent (gv, com2);
  605. Assert.AreEqual (true, bubbleupdaterow, "AfterBubbleEventUpdateRow");
  606. // Edit
  607. GridViewCommandEventArgs com3 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Edit", null));
  608. Assert.AreEqual (false, bubbleeditingrow, "BeforeBubbleEventEditingRow");
  609. gv.DoOnBubbleEvent (gv, com3);
  610. Assert.AreEqual (true, bubbleeditingrow, "AfterBubbleEventEditingRow");
  611. // Sort
  612. gv.AllowSorting = true;
  613. GridViewCommandEventArgs com4 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Sort", null));
  614. Assert.AreEqual (false, bubblesortint, "BeforeBubbleEventSortingRow");
  615. gv.DoOnBubbleEvent (gv, com4);
  616. Assert.AreEqual (true, bubblesortint, "AfterBubbleEventSortingRow");
  617. // Canceling Edit
  618. GridViewCommandEventArgs com5 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Cancel", null));
  619. Assert.AreEqual (false, bubblecanceling, "BeforeBubbleEventcancelingEdit");
  620. gv.DoOnBubbleEvent (gv, com5);
  621. Assert.AreEqual (true, bubblecanceling, "AfterBubbleEventcancelingEdit");
  622. // Select
  623. GridViewCommandEventArgs com6 = new GridViewCommandEventArgs (gv.SelectedRow, lb, new CommandEventArgs ("Select", "2"));
  624. Assert.AreEqual (false, bubbleselect, "BeforeBubbleEventSelect");
  625. gv.DoOnBubbleEvent (gv, com6);
  626. Assert.AreEqual (true, bubbleselect, "AfterBubbleEventSelect");
  627. //Next Page
  628. GridViewCommandEventArgs com7 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Page", "Next"));
  629. Assert.AreEqual (false, bubblepage, "BeforeBubbleEventNextPage");
  630. gv.DoOnBubbleEvent (gv, com7);
  631. Assert.AreEqual (true, bubblepage, "AfterBubbleEventNextPage");
  632. Assert.AreEqual (1, newPageIndex, "NextPage");
  633. // Prev Page
  634. ResetEvents ();
  635. GridViewCommandEventArgs com8 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Page", "Prev"));
  636. Assert.AreEqual (false, bubblepage, "BeforeBubbleEventPrevPage");
  637. gv.DoOnBubbleEvent (gv, com8);
  638. Assert.AreEqual (true, bubblepage, "AfterBubbleEventPrevPage");
  639. Assert.AreEqual (-1, newPageIndex, "PrevPage");
  640. ResetEvents ();
  641. GridViewCommandEventArgs com9 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Page", "Last"));
  642. Assert.AreEqual (false, bubblepage, "BeforeBubbleEventLastPage");
  643. gv.DoOnBubbleEvent (gv, com9);
  644. Assert.AreEqual (true, bubblepage, "AfterBubbleEventLastPage");
  645. ResetEvents ();
  646. GridViewCommandEventArgs com10 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Page", "First"));
  647. Assert.AreEqual (false, bubblepage, "BeforeBubbleEventFirstPage");
  648. gv.DoOnBubbleEvent (gv, com10);
  649. Assert.AreEqual (true, bubblepage, "AfterBubbleEventFirstPage");
  650. Assert.AreEqual (0, newPageIndex, "FirstPage");
  651. }
  652. private void gv_RowDeleting (object sender, EventArgs e)
  653. {
  654. bubbledeleterow = true;
  655. rowDeleting = true;
  656. }
  657. private void gv_RowUpdating (object sender, EventArgs e)
  658. {
  659. bubbleupdaterow = true;
  660. rowUpdating = true;
  661. }
  662. private void gv_RowEditing (object sender, EventArgs e)
  663. {
  664. bubbleeditingrow = true;
  665. rowEditing = true;
  666. }
  667. private void gv_Sorting (object sender, EventArgs e)
  668. {
  669. bubblesortint = true;
  670. sorting = true;
  671. }
  672. private void gv_RowCancelingEdit (object sender, EventArgs e)
  673. {
  674. bubblecanceling = true;
  675. gridViewCancelEdit = true;
  676. }
  677. private void gv_SelectedIndexChanging (object sender, GridViewSelectEventArgs e)
  678. {
  679. bubbleselect = true;
  680. selectIndexChanging = true;
  681. Assert.AreEqual (2, e.NewSelectedIndex, "SelectedIndexChanging");
  682. }
  683. private void gv_PageIndexChanging (object sender, GridViewPageEventArgs e)
  684. {
  685. bubblepage = true;
  686. pageIndexChanging = true;
  687. newPageIndex = e.NewPageIndex;
  688. }
  689. private void ResetEvents ()
  690. {
  691. bubblepage = false;
  692. dataBinding = false;
  693. pageIndexChanging = false;
  694. gridViewCancelEdit = false;
  695. rowDeleting = false;
  696. rowEditing = false;
  697. rowUpdating = false;
  698. selectIndexChanging = false;
  699. sorting = false;
  700. }
  701. // Events variable
  702. private bool dataBinding;
  703. private bool dataBound;
  704. private bool init;
  705. private bool load;
  706. private bool pageIndexChanged;
  707. private bool pageIndexChanging;
  708. private bool preRender;
  709. private bool gridViewCancelEdit;
  710. private bool rowCommand;
  711. private bool rowCreated;
  712. private bool rowDataBound;
  713. private bool rowDeleted;
  714. private bool rowDeleting;
  715. private bool rowEditing;
  716. private bool rowUpdated;
  717. private bool rowUpdating;
  718. private bool selectIndexChanged;
  719. private bool selectIndexChanging;
  720. private bool sorted;
  721. private bool sorting;
  722. private bool unload;
  723. [Test]
  724. [Category ("NotWorking")]
  725. public void GridView_EventsNotWorking ()
  726. {
  727. PokerGridView gv = new PokerGridView ();
  728. Assert.AreEqual (false, gv.dataPropertyChanged, "BeforedataPropertyChanged");
  729. gv.DataSource = myds;
  730. // not initialized gv
  731. Assert.AreEqual (true, gv.dataPropertyChanged, "AfterdataPropertyChanged");
  732. gv.Init += new EventHandler (gv_Init);
  733. gv.Load += new EventHandler (gv_Load);
  734. Assert.AreEqual (false, init, "BeforeInit");
  735. gv.DoOnInit (new EventArgs ());
  736. // page does not exist
  737. Assert.AreEqual (true, init, "AfterInit");
  738. Assert.AreEqual (false, load, "BeforeLoad");
  739. gv.DoOnLoad (new EventArgs ());
  740. // page does not exist
  741. Assert.AreEqual (true, load, "AfterLoad");
  742. }
  743. [Test]
  744. public void GridView_Events ()
  745. {
  746. PokerGridView gv = new PokerGridView ();
  747. gv.DataSource = myds;
  748. gv.DataBinding += new EventHandler (gv_DataBinding);
  749. gv.DataBound += new EventHandler (gv_DataBound);
  750. gv.PageIndexChanging += new GridViewPageEventHandler (gv_PageIndexChanging);
  751. gv.PageIndexChanged += new EventHandler (gv_PageIndexChanged);
  752. gv.PreRender += new EventHandler (gv_PreRender);
  753. gv.RowCancelingEdit += new GridViewCancelEditEventHandler (gv_RowCancelingEdit);
  754. gv.RowCommand += new GridViewCommandEventHandler (gv_RowCommand);
  755. gv.RowCreated += new GridViewRowEventHandler (gv_RowCreated);
  756. gv.RowDataBound += new GridViewRowEventHandler (gv_RowDataBound);
  757. gv.RowDeleted += new GridViewDeletedEventHandler(gv_RowDeleted);
  758. gv.RowDeleting+= new GridViewDeleteEventHandler(gv_RowDeleting);
  759. gv.RowEditing+=new GridViewEditEventHandler(gv_RowEditing);
  760. gv.RowUpdated+= new GridViewUpdatedEventHandler(gv_RowUpdated);
  761. gv.RowUpdating+=new GridViewUpdateEventHandler(gv_RowUpdating);
  762. gv.SelectedIndexChanged +=new EventHandler(gv_SelectedIndexChanged);
  763. gv.SelectedIndexChanging+=new GridViewSelectEventHandler(gv_SelectedIndexChanging);
  764. gv.Sorted +=new EventHandler(gv_Sorted);
  765. gv.Sorting +=new GridViewSortEventHandler(gv_Sorting);
  766. gv.Unload+=new EventHandler(gv_Unload);
  767. Assert.AreEqual (false, dataBinding, "BeforeDataBinding");
  768. gv.DoOnDataBinding (new EventArgs ());
  769. Assert.AreEqual (true, dataBinding, "AfterDataBinding");
  770. Assert.AreEqual (false, dataBound, "BeforeDataBound");
  771. gv.DoOnDataBound (new EventArgs ());
  772. Assert.AreEqual (true, dataBound, "AfterDataBound");
  773. Assert.AreEqual (false, pageIndexChanged, "BeforepageIndexChanged");
  774. gv.DoOnPageIndexChanged (new EventArgs ());
  775. Assert.AreEqual (true, pageIndexChanged, "AfterpageIndexChanged");
  776. ResetEvents ();
  777. Assert.AreEqual (false, pageIndexChanging, "BeforepageIndexChanging");
  778. gv.DoOnPageIndexChanging (new GridViewPageEventArgs(1));
  779. Assert.AreEqual (true, pageIndexChanging, "AfterpageIndexChanging");
  780. Assert.AreEqual (false, preRender, "BeforePreRender");
  781. gv.DoOnPreRender (new EventArgs ());
  782. Assert.AreEqual (true, preRender, "AfterPreRender");
  783. ResetEvents ();
  784. Assert.AreEqual (false, gridViewCancelEdit, "BeforeGridViewCancelEdit");
  785. gv.DoOnRowCancelingEdit (new GridViewCancelEditEventArgs (1));
  786. Assert.AreEqual (true, gridViewCancelEdit, "AfterGridViewCancelEdit");
  787. ResetEvents ();
  788. Assert.AreEqual (false, rowCommand, "BeforeRowCommand");
  789. LinkButton lb= new LinkButton();
  790. gv.DoOnRowCommand (new GridViewCommandEventArgs(lb,new CommandEventArgs("",null)));
  791. Assert.AreEqual (true, rowCommand, "AfterRowCommand");
  792. Assert.AreEqual (false, rowCreated, "BeforeRowCreated");
  793. gv.DoOnRowCreated (new GridViewRowEventArgs (gv.SelectedRow));
  794. Assert.AreEqual (true, rowCommand, "AfterRowCreated");
  795. Assert.AreEqual (false, rowDataBound, "BeforeRowDataBound");
  796. gv.DoOnRowDataBound (new GridViewRowEventArgs (gv.SelectedRow));
  797. Assert.AreEqual (true, rowDataBound, "AfterRowDataBound");
  798. Assert.AreEqual (false, rowDeleted, "BeforeRowDeleted");
  799. gv.DoOnRowDeleted(new GridViewDeletedEventArgs(1,new ArgumentException()));
  800. Assert.AreEqual (true, rowDeleted, "AfterRowDeleted");
  801. ResetEvents ();
  802. Assert.AreEqual (false, rowDeleting, "BeforeRowDeleting");
  803. gv.DoOnRowDeleting (new GridViewDeleteEventArgs (0));
  804. Assert.AreEqual (true, rowDeleting, "AfterRowDeleting");
  805. ResetEvents ();
  806. Assert.AreEqual (false, rowEditing, "BeforeRowEditing");
  807. gv.DoOnRowEditing (new GridViewEditEventArgs (0));
  808. Assert.AreEqual (true, rowEditing, "AfterRowEditing");
  809. Assert.AreEqual (false, rowUpdated, "BeforeRowUpdated");
  810. gv.DoOnRowUpdated (new GridViewUpdatedEventArgs(1,new Exception()));
  811. Assert.AreEqual (true, rowUpdated, "AfterRowUpdated");
  812. ResetEvents ();
  813. Assert.AreEqual (false, rowUpdating, "BeforeRowUpdating");
  814. gv.DoOnRowUpdating (new GridViewUpdateEventArgs (0));
  815. Assert.AreEqual (true, rowUpdating, "AfterRowUpdating");
  816. Assert.AreEqual (false, selectIndexChanged, "BeforeSelectedIndexChanged");
  817. gv.DoOnSelectedIndexChanged (new EventArgs ());
  818. Assert.AreEqual (true, selectIndexChanged, "AfterSelectedIndexChanged");
  819. ResetEvents ();
  820. Assert.AreEqual (false, selectIndexChanging, "BeforeSelectedIndexChanging");
  821. gv.DoOnSelectedIndexChanging (new GridViewSelectEventArgs (2));
  822. Assert.AreEqual (true, selectIndexChanging, "AfterSelectedIndexChanging");
  823. Assert.AreEqual (false, sorted, "BeforeSorted");
  824. gv.DoOnSorted (new EventArgs ());
  825. Assert.AreEqual (true, sorted, "AfterSorted");
  826. Assert.AreEqual (false, sorting, "BeforeSorting");
  827. gv.DoOnSorting(new GridViewSortEventArgs("",SortDirection.Ascending));
  828. Assert.AreEqual (true, sorting, "AfterSorting");
  829. Assert.AreEqual (false, unload, "BeforeUnload");
  830. gv.DoOnUnload (new EventArgs ());
  831. Assert.AreEqual (true, unload, "AfterUnload");
  832. }
  833. private void gv_Unload (object sender, EventArgs e)
  834. {
  835. unload = true;
  836. }
  837. private void gv_Sorted (object sender, EventArgs e)
  838. {
  839. sorted = true;
  840. }
  841. private void gv_SelectedIndexChanged (object sender, EventArgs e)
  842. {
  843. selectIndexChanged = true;
  844. }
  845. private void gv_RowUpdated (object sender, EventArgs e)
  846. {
  847. rowUpdated = true;
  848. }
  849. private void gv_RowDeleted (object sender, EventArgs e)
  850. {
  851. rowDeleted = true;
  852. }
  853. private void gv_RowDataBound (object sender, EventArgs e)
  854. {
  855. rowDataBound = true;
  856. }
  857. private void gv_RowCreated (object sender, EventArgs e)
  858. {
  859. rowCreated = true;
  860. }
  861. private void gv_RowCommand (object sender, EventArgs e)
  862. {
  863. rowCommand = true;
  864. }
  865. private void gv_PreRender (object sender, EventArgs e)
  866. {
  867. preRender = true;
  868. }
  869. private void gv_DataBinding (object sender, EventArgs e)
  870. {
  871. dataBinding = true;
  872. }
  873. private void gv_DataBound (object sender, EventArgs e)
  874. {
  875. dataBound = true;
  876. }
  877. private void gv_Init (object sender, EventArgs e)
  878. {
  879. init = true;
  880. }
  881. private void gv_Load (object sender, EventArgs e)
  882. {
  883. load = true;
  884. }
  885. private void gv_PageIndexChanged (object sender, EventArgs e)
  886. {
  887. pageIndexChanged = true;
  888. }
  889. [Test]
  890. public void GridView_PerformDataBiding ()
  891. {
  892. PokerGridView gv = new PokerGridView ();
  893. gv.DoPerformDataBinding (myds);
  894. Assert.AreEqual (6, gv.Rows.Count, "PerformDataBiding_Rows");
  895. }
  896. [Test]
  897. [Category ("NotWorking")]
  898. public void GridView_PrepareControlHierarchy ()
  899. {
  900. PokerGridView gv = new PokerGridView ();
  901. gv.controlHierarchy = false;
  902. gv.Render ();
  903. Assert.AreEqual (0, gv.Controls.Count, "ControlHierarchy_ControlsCount");
  904. Assert.AreEqual (true, gv.controlHierarchy, "ControlHierarchy_FirstFlow");
  905. gv.DataSource = myds;
  906. gv.DataBind ();
  907. gv.controlHierarchy = false;
  908. gv.Render ();
  909. Assert.AreEqual (1, gv.Controls.Count, "ControlHierarchy_ControlsCountSecondaryFlow");
  910. Assert.AreEqual (true, gv.controlHierarchy, "ControlHierarchy_SecondaryFlow");
  911. }
  912. [Test]
  913. public void GridView_State ()
  914. {
  915. PokerGridView g = new PokerGridView ();
  916. PokerGridView copy = new PokerGridView ();
  917. string[] test = new String[1];
  918. test[0] = "test";
  919. g.DataKeyNames = test;
  920. g.EditIndex = 0;
  921. g.PageIndex = 2;
  922. object state = g.DoSaveControlState ();
  923. copy.DoLoadControlState (state);
  924. Assert.AreEqual ("test", copy.DataKeyNames[0], "DataKeyNames");
  925. Assert.AreEqual (0, copy.EditIndex, "EditIndex");
  926. Assert.AreEqual (2, copy.PageIndex, "PageIndex");
  927. }
  928. [Test]
  929. public void GridView_DefaultsRender ()
  930. {
  931. PokerGridView b = new PokerGridView ();
  932. string html = b.Render ();
  933. Assert.AreEqual(-1 ,b.Render().IndexOf("table"), "RenderViewState");
  934. }
  935. [Test]
  936. public void GridView_Render ()
  937. {
  938. PokerGridView b = new PokerGridView ();
  939. b.DataSource = myds;
  940. b.DataBind ();
  941. string OriginControlHtml = @"<div>
  942. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  943. <tr>
  944. <th scope=""col"">Item</th>
  945. </tr><tr>
  946. <td>Norway</td>
  947. </tr><tr>
  948. <td>Sweden</td>
  949. </tr><tr>
  950. <td>France</td>
  951. </tr><tr>
  952. <td>Italy</td>
  953. </tr><tr>
  954. <td>Israel</td>
  955. </tr><tr>
  956. <td>Russia</td>
  957. </tr>
  958. </table>
  959. </div>";
  960. string RenderedControlHtml = b.Render ();
  961. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Rendering");
  962. }
  963. [Test]
  964. public void GridView_RenderAllowPaging ()
  965. {
  966. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderAllowPaging)).Run ();
  967. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  968. string OriginControlHtml = @"<div>
  969. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  970. <tr>
  971. <th scope=""col"">Item</th>
  972. </tr><tr>
  973. <td>Norway</td>
  974. </tr><tr>
  975. <td>Sweden</td>
  976. </tr><tr>
  977. <td><table border=""0"">
  978. <tr>
  979. <td><span>1</span></td><td><a href=""javascript:__doPostBack('ctl01','Page$2')"">2</a></td>
  980. </tr>
  981. </table></td>
  982. </tr>
  983. </table>
  984. </div>";
  985. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderDefault");
  986. }
  987. public static void RenderAllowPaging (Page p)
  988. {
  989. ArrayList myds = new ArrayList ();
  990. myds.Add ("Norway");
  991. myds.Add ("Sweden");
  992. myds.Add ("France");
  993. myds.Add ("Italy");
  994. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  995. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  996. PokerGridView b = new PokerGridView ();
  997. p.Form.Controls.Add (lcb);
  998. p.Form.Controls.Add (b);
  999. b.AllowPaging = true;
  1000. b.PageSize = 2;
  1001. b.DataSource = myds;
  1002. b.DataBind ();
  1003. p.Form.Controls.Add (lce);
  1004. }
  1005. [Test]
  1006. public void GridView_RenderProperty ()
  1007. {
  1008. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderProperty)).Run ();
  1009. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1010. string OriginControlHtml = @"<div id=""__gvctl01__div"">
  1011. <table cellspacing=""1"" cellpadding=""0"" align=""Justify"" rules=""rows"" border=""1"" style=""background-image:url(http://test);"">
  1012. <caption align=""Left"">
  1013. test
  1014. </caption><tr>
  1015. <td><a href=""javascript:__doPostBack('ctl01','Edit$0')"">Edit</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Delete$0')"">Delete</a></td><td>Norway</td>
  1016. </tr><tr>
  1017. <td><a href=""javascript:__doPostBack('ctl01','Edit$1')"">Edit</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Delete$1')"">Delete</a></td><td>Sweden</td>
  1018. </tr><tr>
  1019. <td><a href=""javascript:__doPostBack('ctl01','Edit$2')"">Edit</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Delete$2')"">Delete</a></td><td>France</td>
  1020. </tr><tr>
  1021. <td><a href=""javascript:__doPostBack('ctl01','Edit$3')"">Edit</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Delete$3')"">Delete</a></td><td>Italy</td>
  1022. </tr><tr>
  1023. <td>&nbsp;</td><td>&nbsp;</td>
  1024. </tr>
  1025. </table>
  1026. </div>";
  1027. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderDefault");
  1028. }
  1029. public static void RenderProperty (Page p)
  1030. {
  1031. // Array list for simple datasource
  1032. ArrayList myds = new ArrayList ();
  1033. myds.Add ("Norway");
  1034. myds.Add ("Sweden");
  1035. myds.Add ("France");
  1036. myds.Add ("Italy");
  1037. // Helper controls for searching usefull data from page
  1038. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1039. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1040. PokerGridView g = new PokerGridView ();
  1041. // Changing some property for test
  1042. g.AutoGenerateDeleteButton = true;
  1043. g.AutoGenerateEditButton = true;
  1044. g.BackImageUrl = "http://test";
  1045. g.Caption = "test";
  1046. g.CaptionAlign = TableCaptionAlign.Left;
  1047. g.CellPadding = 0;
  1048. g.CellSpacing = 1;
  1049. g.EnableSortingAndPagingCallbacks = true;
  1050. g.GridLines = GridLines.Horizontal;
  1051. g.HorizontalAlign = HorizontalAlign.Justify;
  1052. g.ShowFooter = true;
  1053. g.ShowHeader = false;
  1054. g.UseAccessibleHeader = false;
  1055. // Add controls for page
  1056. p.Form.Controls.Add (lcb);
  1057. p.Form.Controls.Add (g);
  1058. // Data source and bind
  1059. g.DataSource = myds;
  1060. g.DataBind ();
  1061. p.Form.Controls.Add (lce);
  1062. }
  1063. /// <summary>
  1064. /// From here rendering all possible field types and kinds of
  1065. /// templates
  1066. /// </summary>
  1067. [Test]
  1068. public void GridView_RenderingBoundField ()
  1069. {
  1070. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingBoundField)).Run ();
  1071. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1072. string OriginControlHtml = @"<div>
  1073. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1074. <tr>
  1075. <th scope=""col"">HeaderText</th>
  1076. </tr><tr>
  1077. <td>1</td>
  1078. </tr><tr>
  1079. <td>2</td>
  1080. </tr><tr>
  1081. <td>FooterText</td>
  1082. </tr>
  1083. </table>
  1084. </div>";
  1085. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingBoundField");
  1086. }
  1087. [Test]
  1088. public void GridView_RenderingCheckBoxField ()
  1089. {
  1090. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingCheckBoxField)).Run ();
  1091. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1092. string OriginControlHtml = @"<div>
  1093. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1094. <tr>
  1095. <th scope=""col"">HeaderText</th>
  1096. </tr><tr>
  1097. <td><span disabled=""disabled""><input id="""" type=""checkbox"" name="""" checked=""checked"" disabled=""disabled"" /></span></td>
  1098. </tr><tr>
  1099. <td><span disabled=""disabled""><input id="""" type=""checkbox"" name="""" disabled=""disabled"" /></span></td>
  1100. </tr><tr>
  1101. <td>FooterText</td>
  1102. </tr>
  1103. </table>
  1104. </div>";
  1105. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingCheckBoxField");
  1106. }
  1107. [Test]
  1108. public void GridView_RenderingCheckBoxField2 ()
  1109. {
  1110. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingCheckBoxField2)).Run ();
  1111. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1112. string OriginControlHtml = @"<div>
  1113. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1114. <tr>
  1115. <th scope=""col"">bool</th><th scope=""col"">str</th>
  1116. </tr><tr>
  1117. <td><span disabled=""disabled"" title=""bool""><input id=""ctl01_ctl02_ctl00"" type=""checkbox"" name=""ctl01$ctl02$ctl00"" checked=""checked"" disabled=""disabled"" /></span></td><td>1</td>
  1118. </tr><tr>
  1119. <td><span disabled=""disabled"" title=""bool""><input id=""ctl01_ctl03_ctl00"" type=""checkbox"" name=""ctl01$ctl03$ctl00"" disabled=""disabled"" /></span></td><td>2</td>
  1120. </tr><tr>
  1121. <td>&nbsp;</td><td>&nbsp;</td>
  1122. </tr>
  1123. </table>
  1124. </div>";
  1125. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingCheckBoxField2");
  1126. }
  1127. [Test]
  1128. public void GridView_RenderingImageField ()
  1129. {
  1130. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingImageField)).Run ();
  1131. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1132. string OriginControlHtml = @"<div>
  1133. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1134. <tr>
  1135. <th scope=""col"">HeaderText</th>
  1136. </tr><tr>
  1137. <td><img src=""1"" alt=""1"" style=""border-width:0px;"" /></td>
  1138. </tr><tr>
  1139. <td><img src=""2"" alt=""2"" style=""border-width:0px;"" /></td>
  1140. </tr><tr>
  1141. <td>FooterText</td>
  1142. </tr>
  1143. </table>
  1144. </div>";
  1145. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingImageField");
  1146. }
  1147. [Test]
  1148. public void GridView_RenderingCommandField ()
  1149. {
  1150. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingCommandField)).Run ();
  1151. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1152. string OriginControlHtml = @"<div>
  1153. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1154. <tr>
  1155. <th scope=""col"">HeaderText</th>
  1156. </tr><tr>
  1157. <td><a href=""javascript:__doPostBack('ctl01','Edit$0')"">Edit</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Delete$0')"">Delete</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','New$0')"">New</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Select$0')"">Select</a></td>
  1158. </tr><tr>
  1159. <td><a href=""javascript:__doPostBack('ctl01','Edit$1')"">Edit</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Delete$1')"">Delete</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','New$1')"">New</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Select$1')"">Select</a></td>
  1160. </tr><tr>
  1161. <td>FooterText</td>
  1162. </tr>
  1163. </table>
  1164. </div>";
  1165. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingCommandField");
  1166. }
  1167. [Test]
  1168. public void GridView_RenderingHyperLinkField ()
  1169. {
  1170. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingHyperLinkField)).Run ();
  1171. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1172. string OriginControlHtml = @"<div>
  1173. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1174. <tr>
  1175. <th scope=""col"">HeaderText</th>
  1176. </tr><tr>
  1177. <td><a href=""1"">1</a></td>
  1178. </tr><tr>
  1179. <td><a href=""2"">2</a></td>
  1180. </tr><tr>
  1181. <td>FooterText</td>
  1182. </tr>
  1183. </table>
  1184. </div>";
  1185. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingHyperLinkField");
  1186. }
  1187. [Test]
  1188. [Category ("NotWorking")]
  1189. public void GridView_RenderingButtonField ()
  1190. {
  1191. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingButtonField)).Run ();
  1192. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1193. string OriginControlHtml = @"<div>
  1194. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1195. <tr>
  1196. <th scope=""col"">HeaderText</th><th scope=""col"">HeaderText</th><th scope=""col"">HeaderText</th>
  1197. </tr><tr>
  1198. <td><input type=""button"" value=""1"" onclick=""javascript:__doPostBack('ctl01','0')"" /></td><td><a href=""javascript:__doPostBack('ctl01','0')"">1</a></td><td><input type=""image"" src="""" alt=""1"" onclick=""javascript:__doPostBack('ctl01','0')"" style=""border-width:0px;"" /></td>
  1199. </tr><tr>
  1200. <td><input type=""button"" value=""2"" onclick=""javascript:__doPostBack('ctl01','1')"" /></td><td><a href=""javascript:__doPostBack('ctl01','1')"">2</a></td><td><input type=""image"" src="""" alt=""2"" onclick=""javascript:__doPostBack('ctl01','1')"" style=""border-width:0px;"" /></td>
  1201. </tr><tr>
  1202. <td>FooterText</td><td>FooterText</td><td>FooterText</td>
  1203. </tr>
  1204. </table>
  1205. </div>";
  1206. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingButtonField");
  1207. }
  1208. [Test]
  1209. public void GridView_RenderingTemplateField ()
  1210. {
  1211. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingTemplateField)).Run ();
  1212. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1213. string OriginControlHtml = @"<div>
  1214. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1215. <tr>
  1216. <th scope=""col""><input name="""" type=""text"" id="""" /></th>
  1217. </tr><tr>
  1218. <td><input name="""" type=""text"" value=""1"" id="""" /></td>
  1219. </tr><tr>
  1220. <td><input name="""" type=""text"" value=""2"" id="""" /></td>
  1221. </tr><tr>
  1222. <td><input name="""" type=""text"" id="""" /></td>
  1223. </tr>
  1224. </table>
  1225. </div>";
  1226. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingTemplateField");
  1227. }
  1228. public static void RenderingTemplateField (Page p)
  1229. {
  1230. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1231. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1232. GridView grid = new GridView ();
  1233. grid.ID = "grid";
  1234. grid.AutoGenerateColumns = false;
  1235. grid.ShowFooter = true;
  1236. TemplateField templatefield = new TemplateField ();
  1237. templatefield.InsertVisible = true;
  1238. templatefield.Visible = true;
  1239. templatefield.HeaderText = "HeaderText";
  1240. templatefield.FooterText = "FooterText";
  1241. templatefield.ItemTemplate = new CompiledTemplateBuilder(BuildControl_itemtemplate);
  1242. templatefield.HeaderTemplate = new CompiledTemplateBuilder (BuildControl_itemtemplate);
  1243. templatefield.FooterTemplate= new CompiledTemplateBuilder (BuildControl_itemtemplate);
  1244. grid.DataSource = GridViewTest.CreateDataSource ();
  1245. grid.Columns.Add (templatefield);
  1246. p.Form.Controls.Add (lcb);
  1247. p.Form.Controls.Add (grid);
  1248. p.Form.Controls.Add (lce);
  1249. grid.DataBind ();
  1250. }
  1251. private static void BuildControl_itemtemplate (Control container)
  1252. {
  1253. TextBox ctrl;
  1254. ctrl = new TextBox ();
  1255. ctrl.ID = "TextBox1";
  1256. ctrl.DataBinding += MyDataBinding;
  1257. container.Controls.Add (ctrl);
  1258. }
  1259. private static void MyDataBinding (object sender, EventArgs e)
  1260. {
  1261. TextBox Target;
  1262. IDataItemContainer Container;
  1263. Target = (TextBox) sender;
  1264. Container = (IDataItemContainer) Target.BindingContainer;
  1265. if ((Target.Page.GetDataItem () != null)) {
  1266. Target.Text = Convert.ToString (DataBinder.Eval (Target.Page.GetDataItem(),"str"));
  1267. }
  1268. }
  1269. public static void RenderingButtonField (Page p)
  1270. {
  1271. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1272. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1273. GridView grid = new GridView ();
  1274. grid.AutoGenerateColumns = false;
  1275. grid.ShowFooter = true;
  1276. p.Form.Controls.Add (lcb);
  1277. p.Form.Controls.Add (grid);
  1278. p.Form.Controls.Add (lce);
  1279. ButtonField buttonfield = new ButtonField ();
  1280. buttonfield.HeaderText = "HeaderText";
  1281. buttonfield.FooterText = "FooterText";
  1282. buttonfield.ButtonType = ButtonType.Button;
  1283. buttonfield.DataTextField = STRINGFIELD;
  1284. ButtonField buttonfieldlink = new ButtonField ();
  1285. buttonfieldlink.HeaderText = "HeaderText";
  1286. buttonfieldlink.FooterText = "FooterText";
  1287. buttonfieldlink.ButtonType = ButtonType.Link;
  1288. buttonfieldlink.DataTextField = STRINGFIELD;
  1289. buttonfieldlink.CommandName = "cmd2";
  1290. ButtonField buttonfieldimage = new ButtonField ();
  1291. buttonfieldimage.HeaderText = "HeaderText";
  1292. buttonfieldimage.FooterText = "FooterText";
  1293. buttonfieldimage.ButtonType = ButtonType.Image;
  1294. buttonfieldimage.DataTextField = STRINGFIELD;
  1295. buttonfieldimage.CommandName = "cmd3";
  1296. grid.DataSource = GridViewTest.CreateDataSource ();
  1297. grid.Columns.Add (buttonfield);
  1298. grid.Columns.Add (buttonfieldlink);
  1299. grid.Columns.Add (buttonfieldimage);
  1300. grid.DataBind ();
  1301. }
  1302. public static void RenderingHyperLinkField (Page p)
  1303. {
  1304. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1305. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1306. GridView grid = new GridView ();
  1307. grid.AutoGenerateColumns = false;
  1308. grid.ShowFooter = true;
  1309. p.Form.Controls.Add (lcb);
  1310. p.Form.Controls.Add (grid);
  1311. p.Form.Controls.Add (lce);
  1312. HyperLinkField hyperlinkfield = new HyperLinkField ();
  1313. hyperlinkfield.DataTextField = STRINGFIELD;
  1314. string[] str = new string[] { STRINGFIELD };
  1315. hyperlinkfield.DataNavigateUrlFields = str;
  1316. hyperlinkfield.HeaderText = "HeaderText";
  1317. hyperlinkfield.FooterText = "FooterText";
  1318. grid.DataSource = GridViewTest.CreateDataSource ();
  1319. grid.Columns.Add (hyperlinkfield);
  1320. grid.DataBind ();
  1321. }
  1322. public static void RenderingCommandField (Page p)
  1323. {
  1324. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1325. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1326. GridView grid = new GridView ();
  1327. grid.AutoGenerateColumns = false;
  1328. grid.ShowFooter = true;
  1329. p.Form.Controls.Add (lcb);
  1330. p.Form.Controls.Add (grid);
  1331. p.Form.Controls.Add (lce);
  1332. CommandField commandfield = new CommandField ();
  1333. commandfield.HeaderText = "HeaderText";
  1334. commandfield.FooterText = "FooterText";
  1335. commandfield.ShowCancelButton = true;
  1336. commandfield.ShowDeleteButton = true;
  1337. commandfield.ShowEditButton = true;
  1338. commandfield.ShowInsertButton = true;
  1339. commandfield.ShowSelectButton = true;
  1340. grid.DataSource = GridViewTest.CreateDataSource ();
  1341. grid.Columns.Add (commandfield);
  1342. grid.DataBind ();
  1343. }
  1344. public static void RenderingImageField (Page p)
  1345. {
  1346. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1347. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1348. GridView grid = new GridView ();
  1349. grid.AutoGenerateColumns = false;
  1350. grid.ShowFooter = true;
  1351. p.Form.Controls.Add (lcb);
  1352. p.Form.Controls.Add (grid);
  1353. p.Form.Controls.Add (lce);
  1354. ImageField imagefield = new ImageField ();
  1355. imagefield.HeaderText = "HeaderText";
  1356. imagefield.FooterText = "FooterText";
  1357. imagefield.DataImageUrlField = STRINGFIELD;
  1358. imagefield.DataAlternateTextField = STRINGFIELD;
  1359. grid.DataSource = GridViewTest.CreateDataSource ();
  1360. grid.Columns.Add (imagefield);
  1361. grid.DataBind ();
  1362. }
  1363. public static void RenderingBoundField (Page p)
  1364. {
  1365. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1366. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1367. GridView grid = new GridView ();
  1368. grid.AutoGenerateColumns = false;
  1369. grid.ShowFooter = true;
  1370. p.Form.Controls.Add (lcb);
  1371. p.Form.Controls.Add (grid);
  1372. p.Form.Controls.Add (lce);
  1373. BoundField boundfield = new BoundField ();
  1374. boundfield.DataField = STRINGFIELD;
  1375. boundfield.HeaderText = "HeaderText";
  1376. boundfield.FooterText = "FooterText";
  1377. grid.DataSource = GridViewTest.CreateDataSource ();
  1378. grid.Columns.Add (boundfield);
  1379. grid.DataBind ();
  1380. }
  1381. public static void RenderingCheckBoxField (Page p)
  1382. {
  1383. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1384. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1385. GridView grid = new GridView ();
  1386. grid.AutoGenerateColumns = false;
  1387. grid.ShowFooter = true;
  1388. CheckBoxField checkboxfield = new CheckBoxField ();
  1389. checkboxfield.DataField = BOOLFIELD;
  1390. checkboxfield.HeaderText = "HeaderText";
  1391. checkboxfield.FooterText = "FooterText";
  1392. p.Form.Controls.Add (lcb);
  1393. p.Form.Controls.Add (grid);
  1394. p.Form.Controls.Add (lce);
  1395. grid.DataSource = GridViewTest.CreateDataSource ();
  1396. grid.Columns.Add (checkboxfield);
  1397. grid.DataBind ();
  1398. }
  1399. public static void RenderingCheckBoxField2 (Page p)
  1400. {
  1401. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1402. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1403. GridView grid = new GridView ();
  1404. grid.AutoGenerateColumns = true;
  1405. grid.ShowFooter = true;
  1406. p.Form.Controls.Add (lcb);
  1407. p.Form.Controls.Add (grid);
  1408. p.Form.Controls.Add (lce);
  1409. grid.DataSource = GridViewTest.CreateDataSource ();
  1410. grid.DataBind ();
  1411. }
  1412. ///////////////////////////////////////////////////////
  1413. ///// GRIDVIEW POSTBACK //////
  1414. ///////////////////////////////////////////////////////
  1415. /// <summary>
  1416. /// Urgent Note!
  1417. /// All postback event are failed on reason
  1418. /// System.NotImplementedException:
  1419. /// The requested feature is not implemented.
  1420. /// At System.Web.UI.WebControls.GridView.System.Web.UI.WebControls.IPostBackContainer.GetPostBackOptions (IButtonControl control)
  1421. /// [0x00000] in C:\cygwin\monobuild\mcs\class\System.Web\System.Web.UI.WebControls\GridView.cs:1891
  1422. /// </summary>
  1423. [Test]
  1424. [Category ("NunitWeb")]
  1425. public void GridView_PostBackSotring ()
  1426. {
  1427. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1428. string pageHTML = t.Run ();
  1429. Assert.AreEqual (-1, pageHTML.IndexOf ("SortingSuccess"), "BeforeSorting");
  1430. FormRequest fr = new FormRequest (t.Response, "form1");
  1431. fr.Controls.Add ("__EVENTTARGET");
  1432. fr.Controls.Add ("__EVENTARGUMENT");
  1433. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1434. fr.Controls["__EVENTARGUMENT"].Value = "Sort$Item";
  1435. t.Request = fr;
  1436. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1437. pageHTML = t.Run ();
  1438. if (pageHTML.IndexOf ("SortingSuccess") < 0) {
  1439. Assert.Fail ("SortingFail");
  1440. }
  1441. }
  1442. [Test]
  1443. [Category ("NunitWeb")]
  1444. public void GridView_PostBackPaging ()
  1445. {
  1446. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1447. string pageHTML = t.Run ();
  1448. Assert.AreEqual (-1, pageHTML.IndexOf ("PagingSuccess"), "BeforePaging");
  1449. FormRequest fr = new FormRequest (t.Response, "form1");
  1450. fr.Controls.Add ("__EVENTTARGET");
  1451. fr.Controls.Add ("__EVENTARGUMENT");
  1452. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1453. fr.Controls["__EVENTARGUMENT"].Value = "Page$2";
  1454. t.Request = fr;
  1455. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1456. pageHTML = t.Run ();
  1457. if (pageHTML.IndexOf ("PagingSuccess") < 0) {
  1458. Assert.Fail ("PagingFail");
  1459. }
  1460. }
  1461. [Test]
  1462. [Category ("NunitWeb")]
  1463. [Category ("NotWorking")]
  1464. public void GridView_PostBackDelete ()
  1465. {
  1466. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1467. string pageHTML = t.Run ();
  1468. Assert.AreEqual (-1, pageHTML.IndexOf ("DeleteSuccess"), "BeforeDelete");
  1469. FormRequest fr = new FormRequest (t.Response, "form1");
  1470. fr.Controls.Add ("__EVENTTARGET");
  1471. fr.Controls.Add ("__EVENTARGUMENT");
  1472. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1473. fr.Controls["__EVENTARGUMENT"].Value = "Delete$0";
  1474. t.Request = fr;
  1475. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1476. pageHTML = t.Run ();
  1477. if (pageHTML.IndexOf ("DeleteSuccess") < 0) {
  1478. Assert.Fail ("DeleteFail");
  1479. }
  1480. }
  1481. [Test]
  1482. [Category ("NunitWeb")]
  1483. public void GridView_PostBackDeleteItem ()
  1484. {
  1485. WebTest t = new WebTest ();
  1486. PageDelegates pd = new PageDelegates ();
  1487. pd.Load = GridView_postbackdeleteitem;
  1488. pd.PreRenderComplete = GridView_checkrows;
  1489. t.Invoker = new PageInvoker (pd);
  1490. string pageHTML = t.Run ();
  1491. if (pageHTML.IndexOf ("Delete") < 0){
  1492. Assert.Fail ("BeforeDelete");
  1493. }
  1494. Assert.AreEqual (1, t.UserData , "ObjectDataSource before delete from grid");
  1495. FormRequest fr = new FormRequest (t.Response, "form1");
  1496. fr.Controls.Add ("__EVENTTARGET");
  1497. fr.Controls.Add ("__EVENTARGUMENT");
  1498. fr.Controls["__EVENTTARGET"].Value = "Grid";
  1499. fr.Controls["__EVENTARGUMENT"].Value = "Delete$0";
  1500. t.Request = fr;
  1501. pageHTML = t.Run ();
  1502. Assert.AreEqual (0, t.UserData , "ObjectDataSource after delete from grid");
  1503. }
  1504. public static void GridView_checkrows (Page p)
  1505. {
  1506. GridView grid = p.FindControl ("Grid") as GridView;
  1507. if (grid == null)
  1508. Assert.Fail ("GridView does not created");
  1509. WebTest.CurrentTest.UserData = grid.Rows.Count;
  1510. }
  1511. public static void GridView_postbackdeleteitem (Page p)
  1512. {
  1513. GridView grid = new GridView ();
  1514. ObjectDataSource ds = new ObjectDataSource ();
  1515. ds.ID = "ObjectDataSource2";
  1516. ds.TypeName = "MonoTests.System.Web.UI.WebControls.DataObject";
  1517. ds.SelectMethod = "Select";
  1518. ds.DeleteMethod = "Delete";
  1519. ds.InsertMethod = "Insert";
  1520. ds.UpdateMethod = "Update";
  1521. Parameter p1 = new Parameter ("ID", TypeCode.String);
  1522. Parameter p2 = new Parameter ("FName", TypeCode.String);
  1523. Parameter p3 = new Parameter ("LName", TypeCode.String);
  1524. ds.DeleteParameters.Add (p1);
  1525. ds.DeleteParameters.Add (p2);
  1526. ds.DeleteParameters.Add (p3);
  1527. grid.ID = "Grid";
  1528. grid.DataKeyNames = new string[] { "ID", "FName", "LName" };
  1529. grid.AutoGenerateDeleteButton = true;
  1530. grid.DataSourceID = "ObjectDataSource2";
  1531. p.Form.Controls.Add (ds);
  1532. p.Form.Controls.Add (grid);
  1533. }
  1534. [Test]
  1535. [Category ("NunitWeb")]
  1536. [Category ("NotWorking")]
  1537. public void GridView_PostBackUpdateItem ()
  1538. {
  1539. WebTest t = new WebTest ();
  1540. PageDelegates pd = new PageDelegates ();
  1541. pd.Load = GridView_postbackupdateitem;
  1542. pd.PreRenderComplete = GridView_checkrowsupdate;
  1543. t.Invoker = new PageInvoker (pd);
  1544. string pageHTML = t.Run ();
  1545. if (pageHTML.IndexOf ("Edit") < 0) {
  1546. Assert.Fail ("BeforeEdit");
  1547. }
  1548. string[] merged_data = t.UserData as string[];
  1549. if (merged_data == null) {
  1550. Assert.Fail ("Grid rows not created#1");
  1551. }
  1552. Assert.AreEqual ("1001", merged_data[1], "Row before update#1");
  1553. Assert.AreEqual ("Mahesh", merged_data[2], "Row before update#2");
  1554. Assert.AreEqual ("Chand", merged_data[3], "Row before update#3");
  1555. FormRequest fr = new FormRequest (t.Response, "form1");
  1556. fr.Controls.Add ("__EVENTTARGET");
  1557. fr.Controls.Add ("__EVENTARGUMENT");
  1558. fr.Controls["__EVENTTARGET"].Value = "Grid";
  1559. fr.Controls["__EVENTARGUMENT"].Value = "Edit$0";
  1560. t.Request = fr;
  1561. t.Run ();
  1562. merged_data = t.UserData as string[];
  1563. if (merged_data == null) {
  1564. Assert.Fail ("Grid rows not created#2");
  1565. }
  1566. fr = new FormRequest (t.Response, "form1");
  1567. fr.Controls.Add ("__EVENTTARGET");
  1568. fr.Controls.Add ("__EVENTARGUMENT");
  1569. fr.Controls.Add (merged_data[4]);
  1570. fr.Controls.Add (merged_data[5]);
  1571. fr.Controls.Add (merged_data[6]);
  1572. fr.Controls["__EVENTTARGET"].Value = merged_data[0];
  1573. fr.Controls["__EVENTARGUMENT"].Value = "";
  1574. fr.Controls[merged_data[4]].Value = "1001";
  1575. fr.Controls[merged_data[5]].Value = "TestEname";
  1576. fr.Controls[merged_data[6]].Value = "TestLname";
  1577. t.Request = fr;
  1578. pageHTML = t.Run ();
  1579. merged_data = t.UserData as string[];
  1580. if (merged_data == null) {
  1581. Assert.Fail ("Grid rows not created#3");
  1582. }
  1583. Assert.AreEqual ("1001", merged_data[1], "Row before update#1");
  1584. Assert.AreEqual ("TestEname", merged_data[2], "Row before update#2");
  1585. Assert.AreEqual ("TestLname", merged_data[3], "Row before update#3");
  1586. }
  1587. public static void GridView_postbackupdateitem (Page p)
  1588. {
  1589. GridView grid = new GridView ();
  1590. ObjectDataSource ds = new ObjectDataSource ();
  1591. ds.ID = "ObjectDataSource2";
  1592. ds.TypeName = "MonoTests.System.Web.UI.WebControls.DataObject";
  1593. ds.SelectMethod = "Select";
  1594. ds.DeleteMethod = "Delete";
  1595. ds.InsertMethod = "Insert";
  1596. ds.UpdateMethod = "Update";
  1597. Parameter p1 = new Parameter ("ID", TypeCode.String);
  1598. Parameter p2 = new Parameter ("FName", TypeCode.String);
  1599. Parameter p3 = new Parameter ("LName", TypeCode.String);
  1600. ds.UpdateParameters.Add (p1);
  1601. ds.UpdateParameters.Add (p2);
  1602. ds.UpdateParameters.Add (p3);
  1603. grid.ID = "Grid";
  1604. grid.AutoGenerateEditButton = true;
  1605. grid.DataSourceID = "ObjectDataSource2";
  1606. p.Form.Controls.Add (ds);
  1607. p.Form.Controls.Add (grid);
  1608. }
  1609. public static void GridView_checkrowsupdate (Page p)
  1610. {
  1611. GridView grid = p.FindControl ("Grid") as GridView;
  1612. if (grid == null) {
  1613. Assert.Fail ("Gridview does not been created");
  1614. }
  1615. string[] data = new string[7];
  1616. try {
  1617. data[0] = grid.Rows[0].Cells[0].Controls[0].UniqueID;
  1618. }
  1619. catch (Exception e) {
  1620. Assert.Fail ("Update button not been created" + e.Message);
  1621. }
  1622. data[1] = grid.Rows[0].Cells[1].Text;
  1623. data[2] = grid.Rows[0].Cells[2].Text;
  1624. data[3] = grid.Rows[0].Cells[3].Text;
  1625. if (grid.Rows[0].Cells[1].Controls.Count > 0) {
  1626. data[4] = grid.Rows[0].Cells[1].Controls[0].UniqueID;
  1627. data[5] = grid.Rows[0].Cells[2].Controls[0].UniqueID;
  1628. data[6] = grid.Rows[0].Cells[3].Controls[0].UniqueID;
  1629. }
  1630. WebTest.CurrentTest.UserData = data;
  1631. }
  1632. [Test]
  1633. [Category ("NunitWeb")]
  1634. public void GridView_PostBackEdit ()
  1635. {
  1636. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1637. string pageHTML = t.Run ();
  1638. Assert.AreEqual (-1, pageHTML.IndexOf ("EditSuccess"), "BeforeEdit");
  1639. FormRequest fr = new FormRequest (t.Response, "form1");
  1640. fr.Controls.Add ("__EVENTTARGET");
  1641. fr.Controls.Add ("__EVENTARGUMENT");
  1642. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1643. fr.Controls["__EVENTARGUMENT"].Value = "Edit$0";
  1644. t.Request = fr;
  1645. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1646. pageHTML = t.Run ();
  1647. if (pageHTML.IndexOf ("EditSuccess") < 0) {
  1648. Assert.Fail ("EditFail");
  1649. }
  1650. }
  1651. [Test]
  1652. [Category ("NunitWeb")]
  1653. public void GridView_PostBackSelect ()
  1654. {
  1655. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1656. string pageHTML = t.Run ();
  1657. Assert.AreEqual (-1, pageHTML.IndexOf ("SelectSuccess"), "BeforeSelect");
  1658. FormRequest fr = new FormRequest (t.Response, "form1");
  1659. fr.Controls.Add ("__EVENTTARGET");
  1660. fr.Controls.Add ("__EVENTARGUMENT");
  1661. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1662. fr.Controls["__EVENTARGUMENT"].Value = "Select$0";
  1663. t.Request = fr;
  1664. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1665. pageHTML = t.Run ();
  1666. if (pageHTML.IndexOf ("SelectSuccess") < 0) {
  1667. Assert.Fail ("SelectFail");
  1668. }
  1669. }
  1670. public void GridView_postback (Page p)
  1671. {
  1672. PokerGridView b = new PokerGridView ();
  1673. b.ID = "mygrid";
  1674. b.PageIndexChanging += new GridViewPageEventHandler (b_PageIndexChanging);
  1675. b.Sorting += new GridViewSortEventHandler (b_Sorting);
  1676. b.RowDeleting += new GridViewDeleteEventHandler (b_RowDeleting);
  1677. b.RowEditing += new GridViewEditEventHandler (b_RowEditing);
  1678. b.SelectedIndexChanging += new GridViewSelectEventHandler (b_SelectedIndexChanging);
  1679. ArrayList myds = new ArrayList ();
  1680. myds.Add ("Norway");
  1681. myds.Add ("Sweden");
  1682. myds.Add ("France");
  1683. myds.Add ("Italy");
  1684. p.Form.Controls.Add (b);
  1685. b.AllowPaging = true;
  1686. b.PageSize = 2;
  1687. b.AllowSorting = true;
  1688. b.AutoGenerateDeleteButton = true;
  1689. b.AutoGenerateEditButton = true;
  1690. b.AutoGenerateSelectButton = true;
  1691. b.DataSource = myds;
  1692. b.DataBind ();
  1693. }
  1694. public void b_RowEditing (object o, GridViewEditEventArgs e)
  1695. {
  1696. ((GridView) o).Page.Controls.Add (new LiteralControl ("EditSuccess"));
  1697. Assert.AreEqual (false, e.Cancel, "EditCancel");
  1698. Assert.AreEqual (0, e.NewEditIndex, "NewEditIndex");
  1699. }
  1700. public void b_PageIndexChanging (object o, GridViewPageEventArgs e)
  1701. {
  1702. ((GridView) o).Page.Controls.Add (new LiteralControl ("PagingSuccess"));
  1703. Assert.AreEqual(false,e.Cancel,"Cancel");
  1704. }
  1705. public void b_Sorting (object o, GridViewSortEventArgs e)
  1706. {
  1707. ((GridView) o).Page.Controls.Add (new LiteralControl ("SortingSuccess"));
  1708. }
  1709. public void b_RowDeleting (object o, GridViewDeleteEventArgs e)
  1710. {
  1711. ((GridView) o).Page.Controls.Add (new LiteralControl ("DeleteSuccess"));
  1712. }
  1713. public void b_SelectedIndexChanging (object o, GridViewSelectEventArgs e)
  1714. {
  1715. ((GridView) o).Page.Controls.Add (new LiteralControl ("SelectSuccess"));
  1716. }
  1717. /// <summary>
  1718. /// All possible exceptions what can be thrown
  1719. /// </summary>
  1720. [Test]
  1721. [ExpectedException (typeof (InvalidOperationException))]
  1722. public void GridView_GetDefaultSelectedValue ()
  1723. {
  1724. PokerGridView g = new PokerGridView ();
  1725. object o = g.SelectedValue;
  1726. }
  1727. public static DataTable CreateDataSource ()
  1728. {
  1729. DataTable aTable = new DataTable ("A");
  1730. DataColumn dtCol;
  1731. DataRow dtRow;
  1732. // Create ID column and add to the DataTable.
  1733. dtCol = new DataColumn ();
  1734. dtCol.DataType = Type.GetType ("System.Boolean");
  1735. dtCol.ColumnName = BOOLFIELD;
  1736. dtCol.Caption = BOOLFIELD;
  1737. dtCol.ReadOnly = true;
  1738. // Add the column to the DataColumnCollection.
  1739. aTable.Columns.Add (dtCol);
  1740. dtCol = new DataColumn ();
  1741. dtCol.DataType = Type.GetType ("System.String");
  1742. dtCol.ColumnName = STRINGFIELD;
  1743. dtCol.Caption = STRINGFIELD;
  1744. dtCol.ReadOnly = true;
  1745. // Add the column to the DataColumnCollection.
  1746. aTable.Columns.Add (dtCol);
  1747. // Create 2 rows to the table
  1748. dtRow = aTable.NewRow ();
  1749. dtRow[BOOLFIELD] = true;
  1750. dtRow[STRINGFIELD] = "1";
  1751. aTable.Rows.Add (dtRow);
  1752. dtRow = aTable.NewRow ();
  1753. dtRow[BOOLFIELD] = false;
  1754. dtRow[STRINGFIELD] = "2";
  1755. aTable.Rows.Add (dtRow);
  1756. return aTable;
  1757. }
  1758. // A simple Template class to wrap an image.
  1759. public class ImageTemplate : ITemplate
  1760. {
  1761. private MyWebControl.Image myImage;
  1762. public MyWebControl.Image MyImage
  1763. {
  1764. get
  1765. {
  1766. return myImage;
  1767. }
  1768. set
  1769. {
  1770. myImage = value;
  1771. }
  1772. }
  1773. public void InstantiateIn (Control container)
  1774. {
  1775. container.Controls.Add (MyImage);
  1776. }
  1777. }
  1778. }
  1779. public class DataObject
  1780. {
  1781. public static DataTable ds = CreateDataTable ();
  1782. public static DataTable Select ()
  1783. {
  1784. return ds;
  1785. }
  1786. public static DataTable Delete (string ID, string FName, string LName)
  1787. {
  1788. DataRow dr = ds.Rows.Find (ID);
  1789. if (dr != null) {
  1790. ds.Rows.Remove (dr);
  1791. }
  1792. return ds;
  1793. }
  1794. public static DataTable Insert (string ID, string FName, string LName)
  1795. {
  1796. DataRow dr = ds.NewRow ();
  1797. dr["ID"] = ID;
  1798. dr["FName"] = FName;
  1799. dr["LName"] = LName;
  1800. ds.Rows.Add (dr);
  1801. return ds;
  1802. }
  1803. public static DataTable Update (string ID, string FName, string LName)
  1804. {
  1805. foreach (DataRow row in ds.Rows) {
  1806. if (row["ID"].ToString () == ID) {
  1807. row["FName"] = FName;
  1808. row["LName"] = LName;
  1809. }
  1810. }
  1811. return ds;
  1812. }
  1813. public static DataTable CreateDataTable ()
  1814. {
  1815. DataTable aTable = new DataTable ("A");
  1816. DataColumn dtCol;
  1817. DataRow dtRow;
  1818. // Create ID column and add to the DataTable.
  1819. dtCol = new DataColumn ();
  1820. dtCol.DataType = Type.GetType ("System.Int32");
  1821. dtCol.ColumnName = "ID";
  1822. dtCol.AutoIncrement = true;
  1823. dtCol.Caption = "ID";
  1824. dtCol.ReadOnly = true;
  1825. dtCol.Unique = true;
  1826. aTable.Columns.Add (dtCol);
  1827. // Create Name column and add to the table
  1828. dtCol = new DataColumn ();
  1829. dtCol.DataType = Type.GetType ("System.String");
  1830. dtCol.ColumnName = "FName";
  1831. dtCol.AutoIncrement = false;
  1832. dtCol.Caption = "First Name";
  1833. dtCol.ReadOnly = false;
  1834. dtCol.Unique = false;
  1835. aTable.Columns.Add (dtCol);
  1836. // Create Last Name column and add to the table.
  1837. dtCol = new DataColumn ();
  1838. dtCol.DataType = Type.GetType ("System.String");
  1839. dtCol.ColumnName = "LName";
  1840. dtCol.AutoIncrement = false;
  1841. dtCol.Caption = "Last Name";
  1842. dtCol.ReadOnly = false;
  1843. dtCol.Unique = false;
  1844. aTable.Columns.Add (dtCol);
  1845. // Create three rows to the table
  1846. dtRow = aTable.NewRow ();
  1847. dtRow["ID"] = 1001;
  1848. dtRow["FName"] = "Mahesh";
  1849. dtRow["LName"] = "Chand";
  1850. aTable.Rows.Add (dtRow);
  1851. aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };
  1852. return aTable;
  1853. }
  1854. }
  1855. }
  1856. #endif