1: using System;
2: using System.Web;
3: using System.Xml;
4: using System.Configuration;
5: using System.Data;
6: using System.Data.OleDb;
7: using System.Data.SqlClient;
8: using System.Web.UI;
9: using System.Web.UI.WebControls;
10: using System.Collections;
11:
12: namespace Ia.Model.Design
13: {
14: ////////////////////////////////////////////////////////////////////////////
15:
16: /// <summary publish="true">
17: /// ASP.NET design related support class.
18: /// </summary>
19: /// <remarks>
20: /// Copyright © 2008-2013 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
21: ///
22: /// This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
23: /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
24: ///
25: /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
26: /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
27: ///
28: /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
29: ///
30: /// Copyright notice: This notice may not be removed or altered from any source distribution.
31: /// </remarks>
32:
33: public class Gv
34: {
35: ////////////////////////////////////////////////////////////////////////////
36:
37: /// <summary>
38: ///
39: /// </summary>
40: public Gv() { }
41:
42: ////////////////////////////////////////////////////////////////////////////
43:
44: /// <summary>
45: ///
46: /// </summary>
47: public static void Verify()
48: {
49: }
50:
51: ////////////////////////////////////////////////////////////////////////////
52: ////////////////////////////////////////////////////////////////////////////
53: }
54: }
55:
56: ////////////////////////////////////////////////////////////////////////////
57:
58: /// <summary>
59: ///
60: /// </summary>
61: public class DynamicGridViewTextTemplate : ITemplate
62: {
63: string _id;
64:
65: public DynamicGridViewTextTemplate(string id)
66: {
67: _id = id;
68: }
69:
70: public void InstantiateIn(System.Web.UI.Control container)
71: {
72: Label l = new Label();
73: l.ID = _id + "_l";
74: l.DataBinding += new EventHandler(this.l_DataBind);
75: container.Controls.Add(l);
76: }
77:
78: private void l_DataBind(Object sender, EventArgs e)
79: {
80: }
81: }
82:
83: ////////////////////////////////////////////////////////////////////////////
84:
85: /// <summary>
86: ///
87: /// </summary>
88: public class DynamicGridViewTextEditTemplate : ITemplate
89: {
90: string _id;
91: DataRow _r;
92:
93: public DynamicGridViewTextEditTemplate(DataRow r)
94: {
95: _id = r["id"].ToString();
96: _r = r;
97: }
98:
99: public void InstantiateIn(System.Web.UI.Control container)
100: {
101: TextBox tb = new TextBox();
102: tb.ID = _id + "_update_tb";
103: tb.DataBinding += new EventHandler(this.tb_DataBind);
104:
105: if (_r["text_mode"] != null && _r["text_mode"].ToString().Length > 0)
106: {
107: if (_r["text_mode"].ToString().ToLower() == "multiline") tb.TextMode = TextBoxMode.MultiLine;
108: else if (_r["text_mode"].ToString().ToLower() == "password") tb.TextMode = TextBoxMode.Password;
109: else if (_r["text_mode"].ToString().ToLower() == "singleline") tb.TextMode = TextBoxMode.SingleLine;
110: }
111: if (_r["row"] != null && _r["row"].ToString().Length > 0) tb.Rows = int.Parse(_r["row"].ToString()) / 2;
112: if (_r["column"] != null && _r["column"].ToString().Length > 0) tb.Columns = int.Parse(_r["column"].ToString()) / 2;
113: if (_r["max_length"] != null && _r["max_length"].ToString().Length > 0) tb.MaxLength = int.Parse(_r["max_length"].ToString());
114:
115: container.Controls.Add(tb);
116: }
117:
118: private void tb_DataBind(Object sender, EventArgs e)
119: {
120: }
121: }
122:
123: ////////////////////////////////////////////////////////////////////////////
124:
125: /// <summary>
126: ///
127: /// </summary>
128: public class DynamicGridViewDdlTemplate : ITemplate
129: {
130: string _id;
131:
132: public DynamicGridViewDdlTemplate(string id)
133: {
134: _id = id;
135: }
136:
137: public void InstantiateIn(System.Web.UI.Control container)
138: {
139: Label l = new Label();
140: l.ID = _id + "_l";
141: l.DataBinding += new EventHandler(this.l_DataBind);
142: container.Controls.Add(l);
143: }
144:
145: private void l_DataBind(Object sender, EventArgs e)
146: {
147: }
148: }
149:
150: ////////////////////////////////////////////////////////////////////////////
151:
152: /// <summary>
153: ///
154: /// </summary>
155: public class DynamicGridViewDdlEditTemplate : ITemplate
156: {
157: string _id;
158: string _data_xpath, _data_text_field, _data_value_field;
159:
160: public DynamicGridViewDdlEditTemplate(string id, string data_xpath, string data_text_field, string data_value_field)
161: {
162: _id = id;
163: _data_xpath = data_xpath;
164: _data_text_field = data_text_field;
165: _data_value_field = data_value_field;
166: }
167:
168: public void InstantiateIn(System.Web.UI.Control container)
169: {
170: DropDownList ddl = new DropDownList();
171: ddl.ID = _id + "_update_ddl";
172: ddl.DataSourceID = _id + "_xds";
173: ddl.DataTextField = _data_text_field;
174: ddl.DataValueField = _data_value_field;
175: ddl.DataBinding += new EventHandler(this.ddl_DataBind);
176: container.Controls.Add(ddl);
177: }
178:
179: private void ddl_DataBind(Object sender, EventArgs e)
180: {
181: }
182: }
183:
184: ////////////////////////////////////////////////////////////////////////////
185:
186: /// <summary>
187: ///
188: /// </summary>
189: public class DynamicGridViewDbDdlEditTemplate : ITemplate
190: {
191: string _id;
192: string _data_text_field, _data_value_field;
193: Hashtable _ht;
194:
195: public DynamicGridViewDbDdlEditTemplate(string id, Hashtable ht, string data_text_field, string data_value_field)
196: {
197: _id = id;
198: _data_text_field = data_text_field;
199: _data_value_field = data_value_field;
200: _ht = ht;
201: }
202:
203: public void InstantiateIn(System.Web.UI.Control container)
204: {
205: DropDownList ddl = new DropDownList();
206: ddl.ID = _id + "_update_ddl";
207: ddl.DataTextField = _data_text_field;
208: ddl.DataValueField = _data_value_field;
209: ddl.DataBinding += new EventHandler(this.ddl_DataBind);
210:
211: foreach (string v in _ht.Keys)
212: {
213: if (v.Contains(_id))
214: {
215: ddl.Items.Add(new ListItem(_ht[v].ToString(), v.Replace(_id + "|", "")));
216: }
217: }
218:
219: container.Controls.Add(ddl);
220: }
221:
222: private void ddl_DataBind(Object sender, EventArgs e)
223: {
224: }
225: }
226:
227: ////////////////////////////////////////////////////////////////////////////
228:
229: /// <summary>
230: ///
231: /// </summary>
232: public class DynamicGridViewRblYesNoTemplate : ITemplate
233: {
234: string _id;
235:
236: public DynamicGridViewRblYesNoTemplate(string id)
237: {
238: _id = id;
239: }
240:
241: public void InstantiateIn(System.Web.UI.Control container)
242: {
243: Label l = new Label();
244: l.ID = _id + "_l";
245: l.DataBinding += new EventHandler(this.l_DataBind);
246: container.Controls.Add(l);
247: }
248:
249: private void l_DataBind(Object sender, EventArgs e)
250: {
251: }
252: }
253:
254: ////////////////////////////////////////////////////////////////////////////
255:
256: /// <summary>
257: ///
258: /// </summary>
259: public class DynamicGridViewRblYesNoEditTemplate : ITemplate
260: {
261: string _id;
262:
263: public DynamicGridViewRblYesNoEditTemplate(string id)
264: {
265: _id = id;
266: }
267:
268: public void InstantiateIn(System.Web.UI.Control container)
269: {
270: RadioButtonList rbl = new RadioButtonList();
271: rbl.ID = _id + "_update_rbl";
272: rbl.Items.Add(new ListItem(Ia.Model.Default.YesNo(true), "1")); // yes
273: rbl.Items.Add(new ListItem(Ia.Model.Default.YesNo(false), "0")); // no
274: rbl.DataBinding += new EventHandler(this.rbl_DataBind);
275: rbl.RepeatDirection = RepeatDirection.Horizontal;
276: rbl.CssClass = "yesno";
277:
278: container.Controls.Add(rbl);
279: }
280:
281: private void rbl_DataBind(Object sender, EventArgs e)
282: {
283: }
284: }
285:
286: ////////////////////////////////////////////////////////////////////////////
287:
288: /// <summary>
289: ///
290: /// </summary>
291: public class DynamicGridViewUrlTemplate : ITemplate
292: {
293: string _id, _text, _url;
294:
295: public DynamicGridViewUrlTemplate(string id, string text, string url)
296: {
297: _id = id;
298: _text = text;
299: _url = url;
300: }
301:
302: public void InstantiateIn(System.Web.UI.Control container)
303: {
304: HyperLink hl = new HyperLink();
305: hl.ID = _id + "_hl";
306: hl.Text = _text;
307: hl.NavigateUrl = _url;
308: hl.DataBinding += new EventHandler(this.hl_DataBind);
309: container.Controls.Add(hl);
310: }
311:
312: private void hl_DataBind(Object sender, EventArgs e)
313: {
314: }
315: }
316:
317: ////////////////////////////////////////////////////////////////////////////
318:
319: /// <summary>
320: ///
321: /// </summary>
322: public class DynamicGridViewUrlEditTemplate : ITemplate
323: {
324: string _id, _text, _url;
325:
326: public DynamicGridViewUrlEditTemplate(string id, string text, string url)
327: {
328: _id = id;
329: _text = text;
330: _url = url;
331: }
332:
333: public void InstantiateIn(System.Web.UI.Control container)
334: {
335: HyperLink hl = new HyperLink();
336: hl.ID = _id + "_update_hl";
337: hl.Text = _text;
338: hl.NavigateUrl = _url;
339: hl.DataBinding += new EventHandler(this.hl_DataBind);
340: container.Controls.Add(hl);
341: }
342:
343: private void hl_DataBind(Object sender, EventArgs e)
344: {
345: }
346: }
347:
348: ////////////////////////////////////////////////////////////////////////////
349:
350: /// <summary>
351: ///
352: /// </summary>
353: public class DynamicGridViewPhotoTemplate : ITemplate
354: {
355: string _id;
356:
357: public DynamicGridViewPhotoTemplate(string id)
358: {
359: _id = id;
360: }
361:
362: public void InstantiateIn(System.Web.UI.Control container)
363: {
364: Image i = new Image();
365: i.ID = _id + "_i";
366: i.DataBinding += new EventHandler(this.i_DataBind);
367: container.Controls.Add(i);
368: }
369:
370: private void i_DataBind(Object sender, EventArgs e)
371: {
372: }
373: }
374:
375: ////////////////////////////////////////////////////////////////////////////
376:
377: /// <summary>
378: ///
379: /// </summary>
380: public class DynamicGridViewPhotoEditTemplate : ITemplate
381: {
382: string _id;
383:
384: public DynamicGridViewPhotoEditTemplate(string id)
385: {
386: _id = id;
387: }
388:
389: public void InstantiateIn(System.Web.UI.Control container)
390: {
391: HyperLink hl = new HyperLink();
392: hl.ID = _id + "_update_hl";
393: hl.DataBinding += new EventHandler(this.hl_DataBind);
394: container.Controls.Add(hl);
395:
396: Label l = new Label();
397: l.ID = _id + "_update_l";
398: l.Text = "Click photo to update";
399: l.DataBinding += new EventHandler(this.l_DataBind);
400: container.Controls.Add(l);
401: }
402:
403: private void hl_DataBind(Object sender, EventArgs e)
404: {
405: }
406:
407: private void l_DataBind(Object sender, EventArgs e)
408: {
409: }
410: }
411:
412: ////////////////////////////////////////////////////////////////////////////
413: ////////////////////////////////////////////////////////////////////////////
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424: /*
425: ////////////////////////////////////////////////////////////////////////////
426: ////////////////////////////////////////////////////////////////////////////
427:
428: /// <summary>
429: ///
430: /// </summary>
431: public class DynamicDetailsViewTextTemplate : ITemplate
432: {
433: string _id;
434:
435: public DynamicDetailsViewTextTemplate(string id)
436: {
437: _id = id;
438: }
439:
440: public void InstantiateIn(System.Web.UI.Control container)
441: {
442: Label l = new Label();
443: l.ID = _id + "_l";
444: l.DataBinding += new EventHandler(this.l_DataBind);
445: container.Controls.Add(l);
446: }
447:
448: private void l_DataBind(Object sender, EventArgs e)
449: {
450: //Label l = (Label)sender;
451: //DetailsViewRow row = (DetailsViewRow)l.NamingContainer;
452: //l.Text = DataBinder.Eval(row.DataItem, _id).ToString();
453: }
454: }
455:
456: ////////////////////////////////////////////////////////////////////////////
457:
458: /// <summary>
459: ///
460: /// </summary>
461: public class DynamicDetailsViewTextEditTemplate : ITemplate
462: {
463: string _id;
464:
465: public DynamicDetailsViewTextEditTemplate(string id)
466: {
467: _id = id;
468: }
469:
470: public void InstantiateIn(System.Web.UI.Control container)
471: {
472: TextBox tb = new TextBox();
473: tb.ID = _id + "_update_tb";
474: tb.DataBinding += new EventHandler(this.tb_DataBind);
475: container.Controls.Add(tb);
476: }
477:
478: private void tb_DataBind(Object sender, EventArgs e)
479: {
480: //TextBox tb = (TextBox)sender;
481: //DetailsViewRow row = (DetailsViewRow)tb.NamingContainer;
482: //tb.Text = DataBinder.Eval(row.DataItem, _id).ToString();
483: }
484: }
485:
486: ////////////////////////////////////////////////////////////////////////////
487:
488: /// <summary>
489: ///
490: /// </summary>
491: public class DynamicDetailsViewDdlTemplate : ITemplate
492: {
493: string _id;
494: //string _data_xpath, _data_text_field, _data_value_field;
495:
496: public DynamicDetailsViewDdlTemplate(string id/ *, string data_xpath, string data_text_field, string data_value_field* /)
497: {
498: _id = id;
499: //_data_xpath = data_xpath;
500: //_data_text_field = data_text_field;
501: //_data_value_field = data_value_field;
502: }
503:
504: public void InstantiateIn(System.Web.UI.Control container)
505: {
506: Label l = new Label();
507: l.ID = _id + "_l";
508: l.DataBinding += new EventHandler(this.l_DataBind);
509: container.Controls.Add(l);
510: }
511:
512: private void l_DataBind(Object sender, EventArgs e)
513: {
514: /*
515: string s;
516:
517: Label l = (Label)sender;
518: DetailsViewRow row = (DetailsViewRow)l.NamingContainer;
519:
520: s = DataBinder.Eval(row.DataItem, _id).ToString();
521:
522: if (s.Length > 0) ddl.SelectedIndex = int.Parse(s);
523: */
524:
525: /*
526: Label l = (Label)sender;
527: DetailsViewRow row = (DetailsViewRow)l.NamingContainer;
528: l.Text = DataBinder.Eval(row.DataItem, _id).ToString();
529: * /
530: }
531: }
532:
533: ////////////////////////////////////////////////////////////////////////////
534:
535: /// <summary>
536: ///
537: /// </summary>
538: public class DynamicDetailsViewDdlEditTemplate : ITemplate
539: {
540: string _id;
541: string _data_xpath, _data_text_field, _data_value_field;
542:
543: public DynamicDetailsViewDdlEditTemplate(string id, string data_xpath, string data_text_field, string data_value_field)
544: {
545: _id = id;
546: _data_xpath = data_xpath;
547: _data_text_field = data_text_field;
548: _data_value_field = data_value_field;
549: }
550:
551: public void InstantiateIn(System.Web.UI.Control container)
552: {
553: DropDownList ddl = new DropDownList();
554: ddl.ID = _id + "_update_ddl";
555: ddl.DataSourceID = _id + "_xds";
556: ddl.DataTextField = _data_text_field;
557: ddl.DataValueField = _data_value_field;
558: ddl.DataBinding += new EventHandler(this.ddl_DataBind);
559: container.Controls.Add(ddl);
560: }
561:
562: private void ddl_DataBind(Object sender, EventArgs e)
563: {
564: /*
565: string s;
566:
567: DropDownList ddl = (DropDownList)sender;
568: DetailsViewRow row = (DetailsViewRow)ddl.NamingContainer;
569:
570: s = DataBinder.Eval(row.DataItem, _id).ToString();
571:
572: if (s.Length > 0)
573: {
574: ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(s));
575: }
576: * /
577: }
578: }
579:
580: ////////////////////////////////////////////////////////////////////////////
581:
582: /// <summary>
583: ///
584: /// </summary>
585: public class DynamicDetailsViewDbDdlEditTemplate : ITemplate
586: {
587: string _id;
588: string _data_text_field, _data_value_field;
589: Hashtable _ht;
590:
591: public DynamicDetailsViewDbDdlEditTemplate(string id, Hashtable ht, string data_text_field, string data_value_field)
592: {
593: _id = id;
594: _data_text_field = data_text_field;
595: _data_value_field = data_value_field;
596: _ht = ht;
597: }
598:
599: public void InstantiateIn(System.Web.UI.Control container)
600: {
601: DropDownList ddl = new DropDownList();
602: ddl.ID = _id + "_update_ddl";
603: ddl.DataTextField = _data_text_field;
604: ddl.DataValueField = _data_value_field;
605: ddl.DataBinding += new EventHandler(this.ddl_DataBind);
606:
607: foreach (string v in _ht.Keys)
608: {
609: if (v.Contains(_id))
610: {
611: ddl.Items.Add(new ListItem(_ht[v].ToString(), v.Replace(_id + "|", "")));
612: }
613: }
614:
615: container.Controls.Add(ddl);
616: }
617:
618: private void ddl_DataBind(Object sender, EventArgs e)
619: {
620: /*
621: string s;
622:
623: DropDownList ddl = (DropDownList)sender;
624: DetailsViewRow row = (DetailsViewRow)ddl.NamingContainer;
625:
626: s = DataBinder.Eval(row.DataItem, _id).ToString();
627:
628: if (s.Length > 0)
629: {
630: ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(s));
631: }
632: * /
633: }
634: }
635:
636: ////////////////////////////////////////////////////////////////////////////
637:
638: /// <summary>
639: ///
640: /// </summary>
641: public class DynamicDetailsViewRblYesNoTemplate : ITemplate
642: {
643: string _id;
644:
645: public DynamicDetailsViewRblYesNoTemplate(string id)
646: {
647: _id = id;
648: }
649:
650: public void InstantiateIn(System.Web.UI.Control container)
651: {
652: Label l = new Label();
653: l.ID = _id + "_l";
654: l.DataBinding += new EventHandler(this.l_DataBind);
655: container.Controls.Add(l);
656: }
657:
658: private void l_DataBind(Object sender, EventArgs e)
659: {
660: }
661: }
662:
663: ////////////////////////////////////////////////////////////////////////////
664:
665: /// <summary>
666: ///
667: /// </summary>
668: public class DynamicDetailsViewRblYesNoEditTemplate : ITemplate
669: {
670: string _id;
671:
672: public DynamicDetailsViewRblYesNoEditTemplate(string id)
673: {
674: _id = id;
675: }
676:
677: public void InstantiateIn(System.Web.UI.Control container)
678: {
679: RadioButtonList rbl = new RadioButtonList();
680: rbl.ID = _id + "_update_rbl";
681: rbl.DataBinding += new EventHandler(this.rbl_DataBind);
682: container.Controls.Add(rbl);
683: }
684:
685: private void rbl_DataBind(Object sender, EventArgs e)
686: {
687: }
688: }
689:
690: ////////////////////////////////////////////////////////////////////////////
691:
692: /// <summary>
693: ///
694: /// </summary>
695: public class DynamicDetailsViewUrlTemplate : ITemplate
696: {
697: string _id, _text, _url;
698:
699: public DynamicDetailsViewUrlTemplate(string id, string text, string url)
700: {
701: _id = id;
702: _text = text;
703: _url = url;
704: }
705:
706: public void InstantiateIn(System.Web.UI.Control container)
707: {
708: HyperLink hl = new HyperLink();
709: hl.ID = _id + "_hl";
710: hl.Text = _text;
711: hl.NavigateUrl = _url;
712: //hl.Target = "_blank";
713: hl.DataBinding += new EventHandler(this.hl_DataBind);
714: container.Controls.Add(hl);
715: }
716:
717: private void hl_DataBind(Object sender, EventArgs e)
718: {
719: /*
720: HyperLink hpl = (HyperLink)sender;
721: DetailsViewRow row = (DetailsViewRow)hpl.NamingContainer;
722: hpl.NavigateUrl = DataBinder.Eval(row.DataItem, _idURL).ToString();
723: hpl.Text = "<div class=\"Post\"><div class=\"PostTitle\">" + DataBinder.Eval(row.DataItem, _idText).ToString() + "</div></div>";
724: * /
725: }
726: }
727:
728: ////////////////////////////////////////////////////////////////////////////
729:
730: /// <summary>
731: ///
732: /// </summary>
733: public class DynamicDetailsViewUrlEditTemplate : ITemplate
734: {
735: string _id, _text, _url;
736:
737: public DynamicDetailsViewUrlEditTemplate(string id, string text, string url)
738: {
739: _id = id;
740: _text = text;
741: _url = url;
742: }
743:
744: public void InstantiateIn(System.Web.UI.Control container)
745: {
746: HyperLink hl = new HyperLink();
747: hl.ID = _id + "_update_hl";
748: hl.Text = _text;
749: hl.NavigateUrl = _url;
750: //hl.Target = "_blank";
751: hl.DataBinding += new EventHandler(this.hl_DataBind);
752: container.Controls.Add(hl);
753:
754: /*
755: Literal li = new Literal();
756: li.Text = @"<br/>";
757: container.Controls.Add(li);
758: */
759:
760: /*
761: // below: link to the photo editing page
762: hl = new HyperLink();
763: hl.ID = _id + "_update_hl";
764: hl.Text = "Update";
765: hl.NavigateUrl = "photo.aspx?id=" + _id;
766: //onclick="photo('<%# DataBinder.Eval(Container.DataItem,"id").ToString() %>');return false;" href=""
767: hl.DataBinding += new EventHandler(this.hl_DataBind);
768: container.Controls.Add(hl);
769: */
770:
771: /*
772: Label l = new Label();
773: l.ID = _id + "_l";
774: l.Text = @"<a href="""" onclick=""photo('1');return false;"">Update</a>";
775: l.DataBinding += new EventHandler(this.hl_DataBind);
776: container.Controls.Add(l);
777: * /
778: }
779:
780: private void hl_DataBind(Object sender, EventArgs e)
781: {
782: /*
783: HyperLink hpl = (HyperLink)sender;
784: DetailsViewRow row = (DetailsViewRow)hpl.NamingContainer;
785: hpl.NavigateUrl = DataBinder.Eval(row.DataItem, _idURL).ToString();
786: hpl.Text = "<div class=\"Post\"><div class=\"PostTitle\">" + DataBinder.Eval(row.DataItem, _idText).ToString() + "</div></div>";
787: * /
788: }
789: }
790:
791: */
792:
793: ////////////////////////////////////////////////////////////////////////////
794: ////////////////////////////////////////////////////////////////////////////