You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1689 lines
51 KiB

  1. using System;
  2. using System.ComponentModel;
  3. using System.IO;
  4. using System.Web.UI;
  5. using System.Web.UI.WebControls;
  6. namespace OT.Controls.DataPager
  7. {
  8. public partial class Pager
  9. {
  10. #region Private fields
  11. private enum NavigationButton : byte
  12. {
  13. First, Prev, Next, Last
  14. }
  15. //private string cssClassName;
  16. private string inputPageIndex;
  17. private string currentUrl;
  18. private string queryString;
  19. private Pager cloneFrom;
  20. private static readonly object EventPageChanging = new object();
  21. private static readonly object EventPageChanged = new object();
  22. //bool pageChangeEventHandled = false;
  23. //AspNetPager Version number, does not use reflection for perfomance reason
  24. const string VersionNumber = "7.3.2";
  25. #endregion
  26. #region Navigation Buttons
  27. [Category("Behavior"),
  28. Browsable(true),
  29. DefaultValue(""),
  30. Description("導航按鈕提示信息格式化。")]
  31. public bool ShowNavigationToolTip
  32. {
  33. get
  34. {
  35. if (null != cloneFrom)
  36. return cloneFrom.ShowNavigationToolTip;
  37. object obj = ViewState["ShowNvToolTip"];
  38. return (obj == null) ? false : (bool)obj;
  39. }
  40. set
  41. {
  42. ViewState["ShowNvToolTip"] = value;
  43. }
  44. }
  45. [Category("Behavior"),
  46. Browsable(true),
  47. DefaultValue(""),
  48. Description("頁碼按鈕提示信息格式化。")]
  49. public string NavigationToolTipTextFormatString
  50. {
  51. get
  52. {
  53. if (null != cloneFrom)
  54. return cloneFrom.NavigationToolTipTextFormatString;
  55. object obj = ViewState["NvToolTipFormatString"];
  56. if (obj == null)
  57. {
  58. if (ShowNavigationToolTip)
  59. return "ShowNavigationToolTip:{0}";
  60. return null;
  61. }
  62. return (string)obj;
  63. }
  64. set
  65. {
  66. string tip = value;
  67. if (tip.Trim().Length < 1 && tip.IndexOf("{0}") < 0)
  68. tip = "{0}";
  69. ViewState["NvToolTipFormatString"] = tip;
  70. }
  71. }
  72. [Category("Behavior"),
  73. Browsable(true),
  74. DefaultValue(""),
  75. Description("頁碼按鈕顯示格式化。")]
  76. public string NumericButtonTextFormatString
  77. {
  78. get
  79. {
  80. if (null != cloneFrom)
  81. return cloneFrom.NumericButtonTextFormatString;
  82. object obj = ViewState["NumericButtonTextFormatString"];
  83. return (obj == null) ? String.Empty : (string)obj;
  84. }
  85. set
  86. {
  87. ViewState["NumericButtonTextFormatString"] = value;
  88. }
  89. }
  90. [Category("Behavior"),
  91. Browsable(true),
  92. DefaultValue(""),
  93. Description("當前頁碼按鈕顯示格式化。")]
  94. public string CurrentPageButtonTextFormatString
  95. {
  96. get
  97. {
  98. if (null != cloneFrom)
  99. return cloneFrom.CurrentPageButtonTextFormatString;
  100. object obj = ViewState["CurrentPageButtonTextFormatString"];
  101. return (obj == null) ? NumericButtonTextFormatString : (string)obj;
  102. }
  103. set
  104. {
  105. ViewState["CurrentPageButtonTextFormatString"] = value;
  106. }
  107. }
  108. [Category("Behavior"),
  109. Browsable(true),
  110. DefaultValue(PagingButtonType.Image),
  111. Description("頁碼按鈕顯示類型。預設:Text")]
  112. public PagingButtonType PagingButtonType
  113. {
  114. get
  115. {
  116. if (null != cloneFrom)
  117. return cloneFrom.PagingButtonType;
  118. object obj = ViewState["PagingButtonType"];
  119. return (obj == null) ? PagingButtonType.Image : (PagingButtonType)obj;
  120. }
  121. set
  122. {
  123. ViewState["PagingButtonType"] = value;
  124. }
  125. }
  126. [Category("Behavior"),
  127. Browsable(true),
  128. DefaultValue(PagingButtonType.Text),
  129. Description("頁碼按鈕顯示類型。預設:Text")]
  130. public PagingButtonType NumericButtonType
  131. {
  132. get
  133. {
  134. if (null != cloneFrom)
  135. return cloneFrom.NumericButtonType;
  136. object obj = ViewState["NumericButtonType"];
  137. return (obj == null) ? PagingButtonType.Text : (PagingButtonType)obj;
  138. }
  139. set
  140. {
  141. ViewState["NumericButtonType"] = value;
  142. }
  143. }
  144. [Category("Behavior"),
  145. Browsable(true),
  146. DefaultValue(PagingButtonLayoutType.None),
  147. Description("頁碼按鈕顯示樣式類型。預設:None")]
  148. public PagingButtonLayoutType PagingButtonLayoutType
  149. {
  150. get
  151. {
  152. if (null != cloneFrom)
  153. return cloneFrom.PagingButtonLayoutType;
  154. object obj = ViewState["PagingButtonLayoutType"];
  155. return (obj == null) ? PagingButtonLayoutType.None : (PagingButtonLayoutType)obj;
  156. }
  157. set { ViewState["PagingButtonLayoutType"] = value; }
  158. }
  159. [Category("Behavior"),
  160. Browsable(true),
  161. DefaultValue(NavigationButtonPosition.BothSides),
  162. Description("當前頁碼按鈕定位方式。預設:BothSides")]
  163. public PagingButtonPosition CurrentPageButtonPosition
  164. {
  165. get
  166. {
  167. if (null != cloneFrom)
  168. return cloneFrom.CurrentPageButtonPosition;
  169. object obj = ViewState["CurrentPageButtonPosition"];
  170. return (obj == null) ? PagingButtonPosition.Fixed : (PagingButtonPosition)obj;
  171. }
  172. set { ViewState["CurrentPageButtonPosition"] = value; }
  173. }
  174. [Category("Behavior"),
  175. Browsable(true),
  176. DefaultValue(NavigationButtonPosition.BothSides),
  177. Description("導航按鈕定位方式。預設:BothSides")]
  178. public NavigationButtonPosition NavigationButtonsPosition
  179. {
  180. get
  181. {
  182. if (null != cloneFrom)
  183. return cloneFrom.NavigationButtonsPosition;
  184. object obj = ViewState["NavigationButtonsPosition"];
  185. return (obj == null) ? NavigationButtonPosition.BothSides : (NavigationButtonPosition)obj;
  186. }
  187. set { ViewState["NavigationButtonsPosition"] = value; }
  188. }
  189. [Category("Behavior"),
  190. Browsable(true),
  191. DefaultValue(PagingButtonType.Button),
  192. Description("導航按鈕類型。預設:Button")]
  193. public PagingButtonType NavigationButtonType
  194. {
  195. get
  196. {
  197. if (null != cloneFrom)
  198. return cloneFrom.NavigationButtonType;
  199. object obj = ViewState["NavigationButtonType"];
  200. return (obj == null) ? PagingButtonType.Button : (PagingButtonType)obj;
  201. }
  202. set
  203. {
  204. ViewState["NavigationButtonType"] = value;
  205. }
  206. }
  207. [Category("Behavior"),
  208. Browsable(true),
  209. DefaultValue(""),
  210. TypeConverter(typeof(TargetConverter)),
  211. Description("UrlPagingTarget。")]
  212. public string UrlPagingTarget
  213. {
  214. get
  215. {
  216. if (null != cloneFrom)
  217. return cloneFrom.UrlPagingTarget;
  218. return (string)ViewState["UrlPagingTarget"];
  219. }
  220. set
  221. {
  222. ViewState["UrlPagingTarget"] = value;
  223. }
  224. }
  225. [Category("Behavior"),
  226. Browsable(true),
  227. DefaultValue(PagingButtonType.Text),
  228. Description("More按鈕的顯示類型。預設:Text")]
  229. public PagingButtonType MoreButtonType
  230. {
  231. get
  232. {
  233. if (null != cloneFrom)
  234. return cloneFrom.MoreButtonType;
  235. object obj = ViewState["MoreButtonType"];
  236. return (obj == null) ? PagingButtonType.Text : (PagingButtonType)obj;
  237. }
  238. set
  239. {
  240. ViewState["MoreButtonType"] = value;
  241. }
  242. }
  243. [Category("Behavior"),
  244. Browsable(true),
  245. DefaultValue(typeof(Unit), "5px"),
  246. Description("頁碼的間距。預設:5px")]
  247. public Unit PagingButtonSpacing
  248. {
  249. get
  250. {
  251. if (null != cloneFrom)
  252. return cloneFrom.PagingButtonSpacing;
  253. object obj = ViewState["PagingButtonSpacing"];
  254. return (obj == null) ? Unit.Pixel(5) : (Unit.Parse(obj.ToString()));
  255. }
  256. set
  257. {
  258. ViewState["PagingButtonSpacing"] = value;
  259. }
  260. }
  261. [Category("Behavior"),
  262. Browsable(true),
  263. DefaultValue(true),
  264. Description("是否顯示第一頁和最後一頁控件")]
  265. public bool ShowFirstLast
  266. {
  267. get
  268. {
  269. if (null != cloneFrom)
  270. return cloneFrom.ShowFirstLast;
  271. object obj = ViewState["ShowFirstLast"];
  272. return (obj == null) ? true : (bool)obj;
  273. }
  274. set { ViewState["ShowFirstLast"] = value; }
  275. }
  276. [Category("Behavior"),
  277. Browsable(true),
  278. DefaultValue(true),
  279. Description("是否顯示上一頁和下一頁控件")]
  280. public bool ShowPrevNext
  281. {
  282. get
  283. {
  284. if (null != cloneFrom)
  285. return cloneFrom.ShowPrevNext;
  286. object obj = ViewState["ShowPrevNext"];
  287. return (obj == null) ? true : (bool)obj;
  288. }
  289. set { ViewState["ShowPrevNext"] = value; }
  290. }
  291. [Category("Behavior"),
  292. Browsable(true),
  293. DefaultValue(true),
  294. Description("是否顯示頁碼")]
  295. public bool ShowPageIndex
  296. {
  297. get
  298. {
  299. if (null != cloneFrom)
  300. return cloneFrom.ShowPageIndex;
  301. object obj = ViewState["ShowPageIndex"];
  302. return (obj == null) ? true : (bool)obj;
  303. }
  304. set { ViewState["ShowPageIndex"] = value; }
  305. }
  306. [Category("Behavior"),
  307. Browsable(true),
  308. DefaultValue(true),
  309. Description("是否顯示More按鈕")]
  310. public bool ShowMoreButtons
  311. {
  312. get
  313. {
  314. if (null != cloneFrom)
  315. return cloneFrom.ShowMoreButtons;
  316. object obj = ViewState["ShowMoreButtons"];
  317. return (obj == null) ? true : (bool)obj;
  318. }
  319. set { ViewState["ShowMoreButtons"] = value; }
  320. }
  321. [Category("Behavior"),
  322. Browsable(true),
  323. DefaultValue("&lt;&lt;"),
  324. Description("第一頁顯示文字,預設&lt;&lt;")]
  325. public string FirstPageText
  326. {
  327. get
  328. {
  329. if (null != cloneFrom)
  330. return cloneFrom.FirstPageText;
  331. object obj = ViewState["FirstPageText"];
  332. return (obj == null) ? "&lt;&lt;" : (string)obj;
  333. }
  334. set { ViewState["FirstPageText"] = value; }
  335. }
  336. [Category("Behavior"),
  337. Browsable(true),
  338. DefaultValue("&lt;"),
  339. Description("上一頁顯示文字,預設&lt;")]
  340. public string PrevPageText
  341. {
  342. get
  343. {
  344. if (null != cloneFrom)
  345. return cloneFrom.PrevPageText;
  346. object obj = ViewState["PrevPageText"];
  347. return (obj == null) ? "&lt;" : (string)obj;
  348. }
  349. set { ViewState["PrevPageText"] = value; }
  350. }
  351. [Category("Behavior"),
  352. Browsable(true),
  353. DefaultValue("&gt;"),
  354. Description("下一頁顯示文字,預設&gt;")]
  355. public string NextPageText
  356. {
  357. get
  358. {
  359. if (null != cloneFrom)
  360. return cloneFrom.NextPageText;
  361. object obj = ViewState["NextPageText"];
  362. return (obj == null) ? "&gt;" : (string)obj;
  363. }
  364. set { ViewState["NextPageText"] = value; }
  365. }
  366. [Category("Behavior"),
  367. Browsable(true),
  368. DefaultValue("&gt;&gt;"),
  369. Description("最後一頁顯示文字,預設&gt;&gt;")]
  370. public string LastPageText
  371. {
  372. get
  373. {
  374. if (null != cloneFrom)
  375. return cloneFrom.LastPageText;
  376. object obj = ViewState["LastPageText"];
  377. return (obj == null) ? "&gt;&gt;" : (string)obj;
  378. }
  379. set { ViewState["LastPageText"] = value; }
  380. }
  381. [Category("Behavior"),
  382. Browsable(true),
  383. DefaultValue(10),
  384. Description("分頁長度,預設10")]
  385. public int NumericButtonCount
  386. {
  387. get
  388. {
  389. if (null != cloneFrom)
  390. return cloneFrom.NumericButtonCount;
  391. object obj = ViewState["NumericButtonCount"];
  392. return (obj == null) ? 10 : (int)obj;
  393. }
  394. set { ViewState["NumericButtonCount"] = value; }
  395. }
  396. [Category("Behavior"),
  397. Browsable(true),
  398. DefaultValue(true),
  399. Description("是否顯示禁用的按鈕")]
  400. public bool ShowDisabledButtons
  401. {
  402. get
  403. {
  404. if (null != cloneFrom)
  405. return cloneFrom.ShowDisabledButtons;
  406. object obj = ViewState["ShowDisabledButtons"];
  407. return (obj == null) ? true : (bool)obj;
  408. }
  409. set
  410. {
  411. ViewState["ShowDisabledButtons"] = value;
  412. }
  413. }
  414. #endregion
  415. #region Image Navigation Buttons
  416. [Category("Behavior"),
  417. Browsable(true),
  418. DefaultValue(""),
  419. Description("圖片路徑.")]
  420. public string ImagePath
  421. {
  422. get
  423. {
  424. if (null != cloneFrom)
  425. return cloneFrom.ImagePath;
  426. string imgPath = (string)ViewState["ImagePath"];
  427. if (imgPath != null)
  428. imgPath = ResolveUrl(imgPath);
  429. return imgPath;
  430. }
  431. set
  432. {
  433. string imgPath = value.Trim().Replace("\\", "/");
  434. ViewState["ImagePath"] = (imgPath.EndsWith("/")) ? imgPath : imgPath + "/";
  435. }
  436. }
  437. [Category("Behavior"),
  438. Browsable(true),
  439. DefaultValue(".gif"),
  440. Description("圖片後綴名稱.")]
  441. public string ButtonImageExtension
  442. {
  443. get
  444. {
  445. if (null != cloneFrom)
  446. return cloneFrom.ButtonImageExtension;
  447. object obj = ViewState["ButtonImageExtension"];
  448. return (obj == null) ? ".gif" : (string)obj;
  449. }
  450. set
  451. {
  452. string ext = value.Trim();
  453. ViewState["ButtonImageExtension"] = (ext.StartsWith(".")) ? ext : ("." + ext);
  454. }
  455. }
  456. [Category("Behavior"),
  457. Browsable(true),
  458. DefaultValue(null),
  459. Description("按鈕圖片後綴名稱.")]
  460. public string ButtonImageNameExtension
  461. {
  462. get
  463. {
  464. if (null != cloneFrom)
  465. return cloneFrom.ButtonImageNameExtension;
  466. object obj = ViewState["ButtonImageNameExtension"];
  467. return (obj == null) ? null : (string)obj;
  468. }
  469. set
  470. {
  471. ViewState["ButtonImageNameExtension"] = value;
  472. }
  473. }
  474. [Category("Behavior"),
  475. Browsable(true),
  476. DefaultValue(null),
  477. Description("Cpi圖片後綴名稱.")]
  478. public string CpiButtonImageNameExtension
  479. {
  480. get
  481. {
  482. if (null != cloneFrom)
  483. return cloneFrom.CpiButtonImageNameExtension;
  484. object obj = ViewState["CpiButtonImageNameExtension"];
  485. return (obj == null) ? ButtonImageNameExtension : (string)obj;
  486. }
  487. set
  488. {
  489. ViewState["CpiButtonImageNameExtension"] = value;
  490. }
  491. }
  492. [Category("Behavior"),
  493. Browsable(true),
  494. DefaultValue(null),
  495. Description("隱藏圖片後綴名稱.")]
  496. public string DisabledButtonImageNameExtension
  497. {
  498. get
  499. {
  500. if (null != cloneFrom)
  501. return cloneFrom.DisabledButtonImageNameExtension;
  502. object obj = ViewState["DisabledButtonImageNameExtension"];
  503. return (obj == null) ? ButtonImageNameExtension : (string)obj;
  504. }
  505. set
  506. {
  507. ViewState["DisabledButtonImageNameExtension"] = value;
  508. }
  509. }
  510. [Category("Behavior"),
  511. Browsable(true),
  512. DefaultValue(ImageAlign.NotSet),
  513. Description("圖片對齊方式. 預設NotSet")]
  514. public ImageAlign ButtonImageAlign
  515. {
  516. get
  517. {
  518. if (null != cloneFrom)
  519. return cloneFrom.ButtonImageAlign;
  520. object obj = ViewState["ButtonImageAlign"];
  521. return (obj == null) ? ImageAlign.NotSet : (ImageAlign)obj;
  522. }
  523. set
  524. {
  525. if (value != ImageAlign.Right && value != ImageAlign.Left)
  526. ViewState["ButtonImageAlign"] = value;
  527. }
  528. }
  529. #endregion
  530. #region Paging
  531. [Category("Behavior"),
  532. Browsable(true),
  533. DefaultValue(false),
  534. Description("是否啟用Url分頁. 預設false")]
  535. public bool UrlPaging
  536. {
  537. get
  538. {
  539. if (null != cloneFrom)
  540. return cloneFrom.UrlPaging;
  541. object obj = ViewState["UrlPaging"];
  542. return (null == obj) ? false : (bool)obj;
  543. }
  544. set
  545. {
  546. ViewState["UrlPaging"] = value;
  547. }
  548. }
  549. [Category("Behavior"),
  550. Browsable(true),
  551. DefaultValue("page"),
  552. Description("Url分頁當前頁碼參數名稱. 預設false")]
  553. public string UrlPageIndexName
  554. {
  555. get
  556. {
  557. if (null != cloneFrom)
  558. return cloneFrom.UrlPageIndexName;
  559. object obj = ViewState["UrlPageIndexName"];
  560. return (null == obj) ? "page" : (string)obj;
  561. }
  562. set { ViewState["UrlPageIndexName"] = value; }
  563. }
  564. [Category("Behavior"),
  565. Browsable(true),
  566. DefaultValue(""),
  567. Description("Url分頁大小參數名稱. 預設false")]
  568. public string UrlPageSizeName
  569. {
  570. get
  571. {
  572. if (null != cloneFrom)
  573. return cloneFrom.UrlPageSizeName;
  574. return (string)ViewState["UrlPageSizeName"];
  575. }
  576. set { ViewState["UrlPageSizeName"] = value; }
  577. }
  578. [Category("Behavior"),
  579. Browsable(true),
  580. DefaultValue(false),
  581. Description("頁碼倒序排列. 預設false")]
  582. public bool ReverseUrlPageIndex
  583. {
  584. get
  585. {
  586. if (null != cloneFrom)
  587. return cloneFrom.ReverseUrlPageIndex;
  588. object obj = ViewState["ReverseUrlPageIndex"];
  589. return (null == obj) ? false : (bool)obj;
  590. }
  591. set { ViewState["ReverseUrlPageIndex"] = value; }
  592. }
  593. [Category("Behavior"),
  594. Browsable(true),
  595. DefaultValue(0),
  596. Description("當前頁碼. 預設1")]
  597. public int CurrentPageIndex
  598. {
  599. get
  600. {
  601. if (null != cloneFrom)
  602. return cloneFrom.CurrentPageIndex;
  603. object cpage = ViewState["CurrentPageIndex"];
  604. int pindex = (cpage == null) ? 1 : (int)cpage;
  605. if (pindex > PageCount && PageCount > 0)
  606. return PageCount;
  607. if (pindex < 1)
  608. return 1;
  609. return pindex;
  610. }
  611. set
  612. {
  613. int cpage = value;
  614. if (cpage < 1)
  615. cpage = 1;
  616. //Deleted by Ethan,因為初始化的時候Gridview還沒有資料,無法恢復記錄的頁碼 Start.
  617. //else if (cpage > PageCount)
  618. // cpage = PageCount;
  619. //Deleted by Ethan,因為初始化的時候Gridview還沒有資料,無法恢復記錄的頁碼 End.
  620. ViewState["CurrentPageIndex"] = cpage;
  621. //if(!pageChangeEventHandled)
  622. //{
  623. // OnPageChanging(new PageChangingEventArgs(cpage));
  624. //}
  625. }
  626. }
  627. [Category("Behavior"),
  628. Browsable(true),
  629. DefaultValue(0),
  630. Description("資料總筆數. 預設0")]
  631. public int RecordCount
  632. {
  633. get
  634. {
  635. if (null != cloneFrom)
  636. return cloneFrom.RecordCount;
  637. object obj = ViewState["Recordcount"];
  638. return (obj == null) ? 0 : (int)obj;
  639. }
  640. set { ViewState["Recordcount"] = value; }
  641. }
  642. [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  643. public int PagesRemain
  644. {
  645. get
  646. {
  647. return PageCount - CurrentPageIndex;
  648. }
  649. }
  650. [Category("Behavior"),
  651. Browsable(true),
  652. DefaultValue(10),
  653. Description("分頁資料筆數. 預設10")]
  654. public int PageSize
  655. {
  656. get
  657. {
  658. if (!string.IsNullOrEmpty(UrlPageSizeName) && !DesignMode)
  659. {
  660. int pageSize;
  661. if (int.TryParse(Page.Request.QueryString[UrlPageSizeName], out pageSize))
  662. {
  663. if (pageSize > 0)
  664. return pageSize;
  665. }
  666. }
  667. if (null != cloneFrom)
  668. return cloneFrom.PageSize;
  669. object obj = ViewState["PageSize"];
  670. return (obj == null) ? 10 : (int)obj;
  671. }
  672. set
  673. {
  674. ViewState["PageSize"] = value;
  675. }
  676. }
  677. [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  678. public int RecordsRemain
  679. {
  680. get
  681. {
  682. if (CurrentPageIndex < PageCount)
  683. return RecordCount - (CurrentPageIndex * PageSize);
  684. return 0;
  685. }
  686. }
  687. [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  688. public int StartRecordIndex
  689. {
  690. get
  691. {
  692. //if (FillLastPage && RecordCount > PageSize && CurrentPageIndex == PageCount)
  693. // return RecordCount - PageSize;
  694. return (CurrentPageIndex - 1) * PageSize + 1;
  695. }
  696. }
  697. [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  698. public int EndRecordIndex
  699. {
  700. get
  701. {
  702. return RecordCount - RecordsRemain;
  703. }
  704. }
  705. [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  706. public int PageCount
  707. {
  708. get
  709. {
  710. if (RecordCount == 0)
  711. return 1;
  712. return (int)Math.Ceiling((double)RecordCount / (double)PageSize);
  713. }
  714. }
  715. #endregion
  716. #region
  717. [Category("Behavior"),
  718. Browsable(true),
  719. DefaultValue(ShowPageMax.Always),
  720. Description("是否顯示跳轉頁面碼控件. 預設Never")]
  721. public ShowPageMax ShowPageMax
  722. {
  723. get
  724. {
  725. if (null != cloneFrom)
  726. return cloneFrom.ShowPageMax;
  727. object obj = ViewState["ShowPageMax"];
  728. return (obj == null) ? ShowPageMax.Always : (ShowPageMax)obj;
  729. }
  730. set { ViewState["ShowPageMax"] = value; }
  731. }
  732. [Category("Behavior"),
  733. Browsable(true),
  734. DefaultValue(PageMaxType.TextBox),
  735. Description("跳轉頁面碼控件類型")]
  736. public PageMaxType PageMaxType
  737. {
  738. get
  739. {
  740. if (null != cloneFrom)
  741. return cloneFrom.PageMaxType;
  742. object obj = ViewState["PageIndexBoxType"];
  743. return (obj == null) ? PageMaxType.TextBox : (PageMaxType)obj;
  744. }
  745. set
  746. {
  747. ViewState["PageIndexBoxType"] = value;
  748. }
  749. }
  750. [Category("Behavior"),
  751. Browsable(true),
  752. DefaultValue(null),
  753. Description("跳轉頁面碼控件CssClass")]
  754. public string PageMaxClass
  755. {
  756. get
  757. {
  758. if (null != cloneFrom)
  759. return cloneFrom.PageMaxClass;
  760. object obj = ViewState["PageMaxClass"];
  761. return (obj == null) ? null : (string)obj;
  762. //return (obj == null) ? "right" : (string)obj;
  763. }
  764. set
  765. {
  766. if (value.Trim().Length > 0)
  767. ViewState["PageMaxClass"] = value;
  768. }
  769. }
  770. [Category("Behavior"),
  771. Browsable(true),
  772. DefaultValue(null),
  773. Description("跳轉頁面碼控件Style")]
  774. public string PageMaxStyle
  775. {
  776. get
  777. {
  778. if (null != cloneFrom)
  779. return cloneFrom.PageMaxStyle;
  780. object obj = ViewState["PageMaxStyle"];
  781. return (obj == null) ? null : (string)obj;
  782. }
  783. set
  784. {
  785. if (value.Trim().Length > 0)
  786. ViewState["PageMaxStyle"] = value;
  787. }
  788. }
  789. #endregion
  790. #region Page index box
  791. //gary
  792. [Category("Behavior"),
  793. Browsable(true),
  794. DefaultValue(ShowPageIndexBox.Always),
  795. Description("是否顯示跳轉頁面碼控件. 預設Never")]
  796. public ShowPageIndexBox ShowPageIndexBox
  797. {
  798. get
  799. {
  800. if (null != cloneFrom)
  801. return cloneFrom.ShowPageIndexBox;
  802. object obj = ViewState["ShowPageIndexBox"];
  803. return (obj == null) ? ShowPageIndexBox.Always : (ShowPageIndexBox)obj;
  804. }
  805. set { ViewState["ShowPageIndexBox"] = value; }
  806. }
  807. [Category("Behavior"),
  808. Browsable(true),
  809. DefaultValue(PageIndexBoxType.TextBox),
  810. Description("跳轉頁面碼控件類型")]
  811. public PageIndexBoxType PageIndexBoxType
  812. {
  813. get
  814. {
  815. if (null != cloneFrom)
  816. return cloneFrom.PageIndexBoxType;
  817. object obj = ViewState["PageIndexBoxType"];
  818. return (obj == null) ? PageIndexBoxType.TextBox : (PageIndexBoxType)obj;
  819. }
  820. set
  821. {
  822. ViewState["PageIndexBoxType"] = value;
  823. }
  824. }
  825. //gary end
  826. [Category("Behavior"),
  827. Browsable(true),
  828. DefaultValue(null),
  829. Description("跳轉頁面碼控件CssClass")]
  830. public string PageIndexBoxClass
  831. {
  832. get
  833. {
  834. if (null != cloneFrom)
  835. return cloneFrom.PageIndexBoxClass;
  836. object obj = ViewState["PageIndexBoxClass"];
  837. return (obj == null) ? null : (string)obj;
  838. }
  839. set
  840. {
  841. if (value.Trim().Length > 0)
  842. ViewState["PageIndexBoxClass"] = value;
  843. }
  844. }
  845. [Category("Behavior"),
  846. Browsable(true),
  847. DefaultValue(null),
  848. Description("跳轉頁面碼控件Style")]
  849. public string PageIndexBoxStyle
  850. {
  851. get
  852. {
  853. if (null != cloneFrom)
  854. return cloneFrom.PageIndexBoxStyle;
  855. object obj = ViewState["PageIndexBoxStyle"];
  856. return (obj == null) ? null : (string)obj;
  857. }
  858. set
  859. {
  860. if (value.Trim().Length > 0)
  861. ViewState["PageIndexBoxStyle"] = value;
  862. }
  863. }
  864. [Category("Behavior"),
  865. Browsable(true),
  866. DefaultValue(null),
  867. Description("跳轉頁面碼控件前顯示的文字。例如第X")]
  868. public string TextBeforePageIndexBox
  869. {
  870. get
  871. {
  872. if (null != cloneFrom)
  873. return cloneFrom.TextBeforePageIndexBox;
  874. object obj = ViewState["TextBeforePageIndexBox"];
  875. return (null == obj) ? null : (string)obj;
  876. }
  877. set
  878. {
  879. ViewState["TextBeforePageIndexBox"] = value;
  880. }
  881. }
  882. [Category("Behavior"),
  883. Browsable(true),
  884. DefaultValue(null),
  885. Description("跳轉頁面碼控件後顯示的文字。例如X頁")]
  886. public string TextAfterPageIndexBox
  887. {
  888. get
  889. {
  890. if (null != cloneFrom)
  891. return cloneFrom.TextAfterPageIndexBox;
  892. object obj = ViewState["TextAfterPageIndexBox"];
  893. return (null == obj) ? null : (string)obj;
  894. }
  895. set
  896. {
  897. ViewState["TextAfterPageIndexBox"] = value;
  898. }
  899. }
  900. [Category("Behavior"),
  901. Browsable(true),
  902. DefaultValue("Go"),
  903. Description("跳轉頁面按鈕的文字。")]
  904. public string SubmitButtonText
  905. {
  906. get
  907. {
  908. if (null != cloneFrom)
  909. return cloneFrom.SubmitButtonText;
  910. object obj = ViewState["SubmitButtonText"];
  911. return (null == obj) ? "Go" : (string)obj;
  912. }
  913. set
  914. {
  915. if (null == value)
  916. value = "Go";
  917. ViewState["SubmitButtonText"] = value;
  918. }
  919. }
  920. [Category("Behavior"),
  921. Browsable(true),
  922. DefaultValue(""),
  923. Description("跳轉頁面按鈕的Class。")]
  924. public string SubmitButtonClass
  925. {
  926. get
  927. {
  928. if (null != cloneFrom)
  929. return cloneFrom.SubmitButtonClass;
  930. return (string)ViewState["SubmitButtonClass"];
  931. }
  932. set
  933. {
  934. ViewState["SubmitButtonClass"] = value;
  935. }
  936. }
  937. [Category("Behavior"),
  938. Browsable(true),
  939. DefaultValue(""),
  940. Description("跳轉頁面按鈕的Style。")]
  941. public string SubmitButtonStyle
  942. {
  943. get
  944. {
  945. if (null != cloneFrom)
  946. return cloneFrom.SubmitButtonStyle;
  947. return (string)ViewState["SubmitButtonStyle"];
  948. }
  949. set
  950. {
  951. ViewState["SubmitButtonStyle"] = value;
  952. }
  953. }
  954. [Category("Behavior"),
  955. Browsable(true),
  956. DefaultValue(""),
  957. Description("跳轉頁面按鈕的圖片Url路徑。")]
  958. public string SubmitButtonImageUrl
  959. {
  960. get
  961. {
  962. if (null != cloneFrom)
  963. return cloneFrom.SubmitButtonImageUrl;
  964. return (string)ViewState["SubmitButtonImageUrl"];
  965. }
  966. set { ViewState["SubmitButtonImageUrl"] = value; }
  967. }
  968. [Category("Behavior"),
  969. Browsable(true),
  970. DefaultValue(1),
  971. Description("當超過多少頁時顯示跳轉頁面碼控件。預設30")]
  972. public int ShowBoxThreshold
  973. {
  974. get
  975. {
  976. if (null != cloneFrom)
  977. return cloneFrom.ShowBoxThreshold;
  978. object obj = ViewState["ShowBoxThreshold"];
  979. return (null == obj) ? 1 : (int)obj;
  980. }
  981. set { ViewState["ShowBoxThreshold"] = value; }
  982. }
  983. #endregion
  984. #region CustomInfoSection
  985. [Category("Behavior"),
  986. Browsable(true),
  987. DefaultValue(ShowCustomInfoSection.Never),
  988. Description("顯示客制化信息。預設Never")]
  989. public ShowCustomInfoSection ShowCustomInfoSection
  990. {
  991. get
  992. {
  993. if (null != cloneFrom)
  994. return cloneFrom.ShowCustomInfoSection;
  995. object obj = ViewState["ShowCustomInfoSection"];
  996. return (null == obj) ? ShowCustomInfoSection.Never : (ShowCustomInfoSection)obj;
  997. }
  998. set { ViewState["ShowCustomInfoSection"] = value; }
  999. }
  1000. [Category("Behavior"),
  1001. Browsable(true),
  1002. DefaultValue(HorizontalAlign.NotSet),
  1003. Description("顯示客制化信息的水平方式")]
  1004. public HorizontalAlign CustomInfoTextAlign
  1005. {
  1006. get
  1007. {
  1008. if (null != cloneFrom)
  1009. return cloneFrom.CustomInfoTextAlign;
  1010. object obj = ViewState["CustomInfoTextAlign"];
  1011. return (null == obj) ? HorizontalAlign.NotSet : (HorizontalAlign)obj;
  1012. }
  1013. set
  1014. {
  1015. ViewState["CustomInfoTextAlign"] = value;
  1016. }
  1017. }
  1018. [Category("Behavior"),
  1019. Browsable(true),
  1020. DefaultValue(typeof(Unit), "40%"),
  1021. Description("顯示客制化信息的寬度")]
  1022. public Unit CustomInfoSectionWidth
  1023. {
  1024. get
  1025. {
  1026. if (null != cloneFrom)
  1027. return cloneFrom.CustomInfoSectionWidth;
  1028. object obj = ViewState["CustomInfoSectionWidth"];
  1029. return (null == obj) ? Unit.Percentage(40) : (Unit)obj;
  1030. }
  1031. set
  1032. {
  1033. ViewState["CustomInfoSectionWidth"] = value;
  1034. }
  1035. }
  1036. [Category("Behavior"),
  1037. Browsable(true),
  1038. DefaultValue(null),
  1039. Description("顯示客制化信息的Class")]
  1040. public string CustomInfoClass
  1041. {
  1042. get
  1043. {
  1044. if (null != cloneFrom)
  1045. return cloneFrom.CustomInfoClass;
  1046. object obj = ViewState["CustomInfoClass"];
  1047. return (null == obj) ? CssClass : (string)obj;
  1048. }
  1049. set
  1050. {
  1051. ViewState["CustomInfoClass"] = value;
  1052. }
  1053. }
  1054. [Category("Behavior"),
  1055. Browsable(true),
  1056. DefaultValue(null),
  1057. Description("顯示客制化信息的Style")]
  1058. public string CustomInfoStyle
  1059. {
  1060. get
  1061. {
  1062. if (null != cloneFrom)
  1063. return cloneFrom.CustomInfoStyle;
  1064. object obj = ViewState["CustomInfoStyle"];
  1065. return (null == obj) ? Style.Value : (string)obj;
  1066. }
  1067. set
  1068. {
  1069. ViewState["CustomInfoStyle"] = value;
  1070. }
  1071. }
  1072. [Category("Behavior"),
  1073. Browsable(true),
  1074. DefaultValue("Page %CurrentPageIndex% of %PageCount%"),
  1075. Description("顯示客制化信息的格式。預設:Page %CurrentPageIndex% of %PageCount%")]
  1076. public string CustomInfoHTML
  1077. {
  1078. get
  1079. {
  1080. if (null != cloneFrom)
  1081. return cloneFrom.CustomInfoHTML;
  1082. object obj = ViewState["CustomInfoText"];
  1083. return (null == obj) ? "Page %CurrentPageIndex% of %PageCount%" : (string)obj;
  1084. }
  1085. set
  1086. {
  1087. ViewState["CustomInfoText"] = value;
  1088. }
  1089. }
  1090. #endregion
  1091. #region Css class and styles
  1092. [Category("Behavior"),
  1093. Browsable(true),
  1094. DefaultValue(null),
  1095. Description("當前頁碼的Style。")]
  1096. public string CurrentPageButtonStyle
  1097. {
  1098. get
  1099. {
  1100. if (null != cloneFrom)
  1101. return cloneFrom.CurrentPageButtonStyle;
  1102. object obj = ViewState["CPBStyle"];
  1103. return (null == obj) ? null : (string)obj;
  1104. }
  1105. set
  1106. {
  1107. ViewState["CPBStyle"] = value;
  1108. }
  1109. }
  1110. [Category("Behavior"),
  1111. Browsable(true),
  1112. DefaultValue(null),
  1113. Description("當前頁碼的Class。")]
  1114. public string CurrentPageButtonClass
  1115. {
  1116. get
  1117. {
  1118. if (null != cloneFrom)
  1119. return cloneFrom.CurrentPageButtonClass;
  1120. object obj = ViewState["CPBClass"];
  1121. return (null == obj) ? null : (string)obj;
  1122. }
  1123. set
  1124. {
  1125. ViewState["CPBClass"] = value;
  1126. }
  1127. }
  1128. [Category("Behavior"),
  1129. Browsable(true),
  1130. DefaultValue(null),
  1131. Description("分頁頁碼的Class。")]
  1132. public string PagingButtonsClass
  1133. {
  1134. get
  1135. {
  1136. if (null != cloneFrom)
  1137. return cloneFrom.PagingButtonsClass;
  1138. object obj = ViewState["PagingButtonsClass"];
  1139. return (null == obj) ? null : (string)obj;
  1140. }
  1141. set
  1142. {
  1143. ViewState["PagingButtonsClass"] = value;
  1144. }
  1145. }
  1146. [Category("Behavior"),
  1147. Browsable(true),
  1148. DefaultValue(null),
  1149. Description("分頁頁碼的Style。")]
  1150. public string PagingButtonsStyle
  1151. {
  1152. get
  1153. {
  1154. if (null != cloneFrom)
  1155. return cloneFrom.PagingButtonsStyle;
  1156. object obj = ViewState["PagingButtonsStyle"];
  1157. return (null == obj) ? null : (string)obj;
  1158. }
  1159. set
  1160. {
  1161. ViewState["PagingButtonsStyle"] = value;
  1162. }
  1163. }
  1164. [Category("Behavior"),
  1165. Browsable(true),
  1166. DefaultValue(null),
  1167. Description("第一頁的Class。")]
  1168. public string FirstButtonsClass
  1169. {
  1170. get
  1171. {
  1172. if (null != cloneFrom)
  1173. return cloneFrom.FirstButtonsClass;
  1174. object obj = ViewState["FirstButtonsClass"];
  1175. return (null == obj) ? null : (string)obj;
  1176. }
  1177. set
  1178. {
  1179. ViewState["FirstButtonsClass"] = value;
  1180. }
  1181. }
  1182. [Category("Behavior"),
  1183. Browsable(true),
  1184. DefaultValue(null),
  1185. Description("第一頁的Style。")]
  1186. public string FirstButtonsStyle
  1187. {
  1188. get
  1189. {
  1190. if (null != cloneFrom)
  1191. return cloneFrom.FirstButtonsStyle;
  1192. object obj = ViewState["FirstButtonsStyle"];
  1193. return (null == obj) ? PagingButtonsStyle : (string)obj;
  1194. }
  1195. set
  1196. {
  1197. ViewState["FirstButtonsStyle"] = value;
  1198. }
  1199. }
  1200. [Category("Behavior"),
  1201. Browsable(true),
  1202. DefaultValue(null),
  1203. Description("最後一頁的Class。")]
  1204. public string LastButtonsClass
  1205. {
  1206. get
  1207. {
  1208. if (null != cloneFrom)
  1209. return cloneFrom.LastButtonsClass;
  1210. object obj = ViewState["LastButtonsClass"];
  1211. return (null == obj) ? null : (string)obj;
  1212. }
  1213. set
  1214. {
  1215. ViewState["LastButtonsClass"] = value;
  1216. }
  1217. }
  1218. [Category("Behavior"),
  1219. Browsable(true),
  1220. DefaultValue(null),
  1221. Description("最後一頁的Style。")]
  1222. public string LastButtonsStyle
  1223. {
  1224. get
  1225. {
  1226. if (null != cloneFrom)
  1227. return cloneFrom.LastButtonsStyle;
  1228. object obj = ViewState["LastButtonsStyle"];
  1229. return (null == obj) ? PagingButtonsStyle : (string)obj;
  1230. }
  1231. set
  1232. {
  1233. ViewState["LastButtonsStyle"] = value;
  1234. }
  1235. }
  1236. [Category("Behavior"),
  1237. Browsable(true),
  1238. DefaultValue(null),
  1239. Description("上一頁的Class。")]
  1240. public string PrevButtonsClass
  1241. {
  1242. get
  1243. {
  1244. if (null != cloneFrom)
  1245. return cloneFrom.PrevButtonsClass;
  1246. object obj = ViewState["PrevButtonsClass"];
  1247. return (null == obj) ? null : (string)obj;
  1248. }
  1249. set
  1250. {
  1251. ViewState["PrevButtonsClass"] = value;
  1252. }
  1253. }
  1254. [Category("Behavior"),
  1255. Browsable(true),
  1256. DefaultValue(null),
  1257. Description("上一頁的Style。")]
  1258. public string PrevButtonsStyle
  1259. {
  1260. get
  1261. {
  1262. if (null != cloneFrom)
  1263. return cloneFrom.PrevButtonsStyle;
  1264. object obj = ViewState["PrevButtonsStyle"];
  1265. return (null == obj) ? PagingButtonsStyle : (string)obj;
  1266. }
  1267. set
  1268. {
  1269. ViewState["PrevButtonsStyle"] = value;
  1270. }
  1271. }
  1272. [Category("Behavior"),
  1273. Browsable(true),
  1274. DefaultValue(null),
  1275. Description("下一頁的Class。")]
  1276. public string NextButtonsClass
  1277. {
  1278. get
  1279. {
  1280. if (null != cloneFrom)
  1281. return cloneFrom.NextButtonsClass;
  1282. object obj = ViewState["NextButtonsClass"];
  1283. return (null == obj) ? null : (string)obj;
  1284. }
  1285. set
  1286. {
  1287. ViewState["NextButtonsClass"] = value;
  1288. }
  1289. }
  1290. [Category("Behavior"),
  1291. Browsable(true),
  1292. DefaultValue(null),
  1293. Description("下一頁的Style。")]
  1294. public string NextButtonsStyle
  1295. {
  1296. get
  1297. {
  1298. if (null != cloneFrom)
  1299. return cloneFrom.NextButtonsStyle;
  1300. object obj = ViewState["NextButtonsStyle"];
  1301. return (null == obj) ? PagingButtonsStyle : (string)obj;
  1302. }
  1303. set
  1304. {
  1305. ViewState["NextButtonsStyle"] = value;
  1306. }
  1307. }
  1308. [Category("Behavior"),
  1309. Browsable(true),
  1310. DefaultValue(null),
  1311. Description("...的Style。")]
  1312. public string MoreButtonsClass
  1313. {
  1314. get
  1315. {
  1316. if (null != cloneFrom)
  1317. return cloneFrom.MoreButtonsClass;
  1318. object obj = ViewState["MoreButtonsClass"];
  1319. return (null == obj) ? PagingButtonsClass : (string)obj;
  1320. }
  1321. set
  1322. {
  1323. ViewState["MoreButtonsClass"] = value;
  1324. }
  1325. }
  1326. [Category("Behavior"),
  1327. Browsable(true),
  1328. DefaultValue(null),
  1329. Description("...的Style。")]
  1330. public string MoreButtonsStyle
  1331. {
  1332. get
  1333. {
  1334. if (null != cloneFrom)
  1335. return cloneFrom.MoreButtonsStyle;
  1336. object obj = ViewState["MoreButtonsStyle"];
  1337. return (null == obj) ? PagingButtonsStyle : (string)obj;
  1338. }
  1339. set
  1340. {
  1341. ViewState["MoreButtonsStyle"] = value;
  1342. }
  1343. }
  1344. #endregion
  1345. #region Others
  1346. [Category("Behavior"),
  1347. Browsable(true),
  1348. DefaultValue(false),
  1349. Description("控件的ID")]
  1350. public string CloneFrom
  1351. {
  1352. get
  1353. {
  1354. return (string)ViewState["CloneFrom"];
  1355. }
  1356. set
  1357. {
  1358. if (null != value && String.Empty == value.Trim())
  1359. throw new ArgumentNullException("CloneFrom", "The Value of property CloneFrom can not be empty string!");
  1360. if (ID.Equals(value, StringComparison.OrdinalIgnoreCase))
  1361. throw new ArgumentException("The property value of CloneFrom can not be set to control itself!", "CloneFrom");
  1362. ViewState["CloneFrom"] = value;
  1363. }
  1364. }
  1365. ///// <include file='AspNetPagerDocs.xml' path='AspNetPagerDoc/Property[@name="EnableTheming"]/*'/>
  1366. public override bool EnableTheming
  1367. {
  1368. get
  1369. {
  1370. if (null != cloneFrom)
  1371. return cloneFrom.EnableTheming;
  1372. return base.EnableTheming;
  1373. }
  1374. set
  1375. {
  1376. base.EnableTheming = value;
  1377. }
  1378. }
  1379. ///// <include file='AspNetPagerDocs.xml' path='AspNetPagerDoc/Property[@name="SkinID"]/*'/>
  1380. public override string SkinID
  1381. {
  1382. get
  1383. {
  1384. if (null != cloneFrom)
  1385. return cloneFrom.SkinID;
  1386. return base.SkinID;
  1387. }
  1388. set
  1389. {
  1390. base.SkinID = value;
  1391. }
  1392. }
  1393. [Category("Behavior"),
  1394. Browsable(true),
  1395. DefaultValue(false),
  1396. Description("是否使用Url分頁")]
  1397. public bool EnableUrlRewriting
  1398. {
  1399. get
  1400. {
  1401. object obj = ViewState["UrlRewriting"];
  1402. if (null == obj)
  1403. {
  1404. if (null != cloneFrom)
  1405. return cloneFrom.EnableUrlRewriting;
  1406. return false;
  1407. }
  1408. return (bool)obj;
  1409. }
  1410. set
  1411. {
  1412. ViewState["UrlRewriting"] = value;
  1413. if (value)
  1414. UrlPaging = true;
  1415. }
  1416. }
  1417. [Category("Behavior"),
  1418. Browsable(true),
  1419. DefaultValue(false),
  1420. Description("返回頁面")]
  1421. public string UrlRewritePattern
  1422. {
  1423. get
  1424. {
  1425. object obj = ViewState["URPattern"];
  1426. if (null == obj)
  1427. {
  1428. if (null != cloneFrom)
  1429. return cloneFrom.UrlRewritePattern;
  1430. if (EnableUrlRewriting)
  1431. {
  1432. if (!DesignMode)
  1433. {
  1434. string filePath = Page.Request.FilePath;
  1435. return Path.GetFileNameWithoutExtension(filePath) + "_{0}" + Path.GetExtension(filePath);
  1436. }
  1437. }
  1438. return null;
  1439. }
  1440. return (string)obj;
  1441. }
  1442. set
  1443. {
  1444. ViewState["URPattern"] = value;
  1445. }
  1446. }
  1447. [Category("Behavior"),
  1448. Browsable(true),
  1449. DefaultValue(false),
  1450. Description("是否總是顯示分頁控件")]
  1451. public bool AlwaysShow
  1452. {
  1453. get
  1454. {
  1455. object obj = ViewState["AlwaysShow"];
  1456. if (null == obj)
  1457. {
  1458. if (null != cloneFrom)
  1459. return cloneFrom.AlwaysShow;
  1460. return false;
  1461. }
  1462. return (bool)obj;
  1463. }
  1464. set
  1465. {
  1466. ViewState["AlwaysShow"] = value;
  1467. }
  1468. }
  1469. [Category("Behavior"),
  1470. Browsable(true),
  1471. DefaultValue(true),
  1472. Description("是否總是顯示第一頁和最後一頁")]
  1473. public bool AlwaysShowFirstLastPageNumber
  1474. {
  1475. get
  1476. {
  1477. object obj = ViewState["AlwaysShowFirstLastPageNumber"];
  1478. if (null == obj)
  1479. {
  1480. if (null != cloneFrom)
  1481. return cloneFrom.AlwaysShowFirstLastPageNumber;
  1482. return false;
  1483. }
  1484. return (bool)obj;
  1485. }
  1486. set
  1487. {
  1488. ViewState["AlwaysShowFirstLastPageNumber"] = value;
  1489. }
  1490. }
  1491. ///// <include file='AspNetPagerDocs.xml' path='AspNetPagerDoc/Property[@name="Wrap"]/*'/>
  1492. public override bool Wrap
  1493. {
  1494. get
  1495. {
  1496. return base.Wrap;
  1497. }
  1498. set
  1499. {
  1500. base.Wrap = false;
  1501. }
  1502. }
  1503. [Category("Behavior"),
  1504. Browsable(true),
  1505. DefaultValue("當前頁碼超出正常範圍"),
  1506. Description("當前頁碼超出正常範圍提示信息。")]
  1507. public string PageIndexOutOfRangeErrorMessage
  1508. {
  1509. get
  1510. {
  1511. object obj = ViewState["PIOutOfRangeErrorMsg"];
  1512. if (null == obj)
  1513. {
  1514. if (null != cloneFrom)
  1515. return cloneFrom.PageIndexOutOfRangeErrorMessage;
  1516. return "當前頁碼超出正常範圍";
  1517. }
  1518. return (string)obj;
  1519. }
  1520. set
  1521. {
  1522. ViewState["PIOutOfRangeErrorMsg"] = value;
  1523. }
  1524. }
  1525. [Category("Behavior"),
  1526. Browsable(true),
  1527. DefaultValue("當前頁碼無效"),
  1528. Description("當前頁碼無效的錯誤提示信息。")]
  1529. public string InvalidPageIndexErrorMessage
  1530. {
  1531. get
  1532. {
  1533. object obj = ViewState["InvalidPIErrorMsg"];
  1534. if (null == obj)
  1535. {
  1536. if (null != cloneFrom)
  1537. return cloneFrom.InvalidPageIndexErrorMessage;
  1538. return "當前頁碼無效";
  1539. }
  1540. return (string)obj;
  1541. }
  1542. set
  1543. {
  1544. ViewState["InvalidPIErrorMsg"] = value;
  1545. }
  1546. }
  1547. [Category("Behavior"),
  1548. Browsable(true),
  1549. DefaultValue(LayoutType.Table),
  1550. Description("分頁控件預設顯示方式。預設Table")]
  1551. public LayoutType LayoutType
  1552. {
  1553. get
  1554. {
  1555. if (null != cloneFrom)
  1556. return cloneFrom.LayoutType;
  1557. object obj = ViewState["LayoutType"];
  1558. return (null == obj) ? LayoutType.Table : (LayoutType)obj;
  1559. }
  1560. set { ViewState["LayoutType"] = value; }
  1561. }
  1562. #endregion
  1563. }
  1564. }