MVC PagedList(MVC分頁功能)

August 19, 2012 at 10:06 PMAdmin

MVC PagedList

ASP.Net MVC沒有分頁功能,如果你有很多DataItem,就是頭痛,你的HTML頁真是很長。

不用怕,有Opensource Library提供分頁功能。我就喜歡用PagedList.Mvc。因它幾易用的。

只需在Controller加入這樣的Code:

         public ActionResult List(int? page)
        {
            IList<IAdvPage> pages = PageRepository.FindAll();

            var pageNumber = page ? ? 1;
            var onePageOfPages = pages.ToPagedList(pageNumber, 25);

            ViewBag.OnePageOfPages = onePageOfPages;
            return View();

        }

在View中加入CSS:

<link href="/Content/PagedList.css" rel="stylesheet" type="text/css" />

在尾加入這Code,那是為分頁的Function Bar

@Html.PagedListPager( (IPagedList)ViewBag.OnePageOfPages, page => Url.Action("List", new { page }) )

就是如此。

Posted in: C# | C# | C# | C#

Tags:

我們自家開發的CMS-AdvGenCMS

August 17, 2012 at 3:23 PMAdmin

我研究了不少CMS,他們都是有自己的ORM及,Dependency injection,非常不合我們的需要。我只是需要非常輕巧的CMS,而且最好就是用標準化的科技,如ASP.Net MVC、LINQ。結果,我們就開發了自家的CMS,AdvGenCMS.

AdvGenCMS非常簡單,而且都是用標準化的技術。它的ORM是微軟的entity framework。還有沒有用Dependency injection,只是用Factory Design Pattern。所有的Concrete Instance都是由一個Singleton的Factory原始化的。不過,如果你希望加入Dependency injection都不難的。此外,整個CMS都是用ASP.Net MVC,並支援Razor。非常容易把網站建好的。

最後,我們把保持CMS盡可能簡單,所以只有基本功能。就是如下:

首先,就是用戶管理:

用戶管理

你可以在此新增、修改、刪除Admin用戶。

第二,說是CMS。當然管理版面內容:

管理版面

所有版面可以由http://[server]/Content/[PageName]瀏覽的。

而且,有HTML Editor。你可以正如用word般編輯版面

編輯版面

真是非常簡單易用。而且它是用Apache License,絕對Opensource。你把它改為你的Web Development Framework。

Posted in: C#

Tags:

在WPF中需要Timer元件

June 17, 2012 at 1:33 AMAdmin

在WinForm中,我們時常需用Timer元件來定時執行一些程序,非常有用的。不過,進入了WPF時代之後,Timer元件就消失了。那麼在WPF怎樣來定時執行一些程序。首選是System.Timers.Timer,不過,到了設定時間時,它在新的Thread來執行程序。因此,不可以直接修改WPF Windows。

所以System.Windows.Threading.DispatcherTimer是比較適合的。請參閱以下的範例

DispatcherTimer sysTimer = new DispatcherTimer();
sysTimer.IsEnabled = true;
sysTimer.Interval = new TimeSpan(0, 0, 1);
sysTimer.Tick += new EventHandler(sysTimer_Tick);

也可以下載我們的Opensource Project,AdvGenStopWatch來詳細了解System.Windows.Threading.DispatcherTimer運作。

Posted in: C# | C#

Tags:

如何用C#將電腦設定為休眠或睡眠

February 12, 2012 at 3:02 AMAdmin

一向都以為不可能C#將電腦設定為休眠或睡眠。因為C#是一種Interpreted language,應該不可能這種控制電源的功能,這種System Level的功能。近來,原來發現那是不正確。而且只需用一行程式就可以把電腦設定為休眠或睡眠。

設為休眠模式

Application.SetSuspendState(PowerState.Hibernate, false, false);

設為睡眠模式

Application.SetSuspendState(PowerState.Suspend, false, false);

這是如此簡單!

Posted in: C#

Tags:

在使用SQLite,出現System.BadImageFormatException

January 8, 2012 at 11:22 AMAdmin

我寫了一個的使用System.Data.Sqlite應用程式。當我執行該 程式 時,就出現了一個Exception,System.BadImageFormatException。其實,問題在於 System.Data.Sqlite需要使用一個unmanaged dll。這是下載了64位元的SQLite的dll,而我的build target設定了為32位元。一般的.Net Dll不是數位版本的問題,不過Sqlist是有用一些C++ Dll的。那是需要留意你的build target!

Posted in: C#

Tags:

顯示 HTML內容中的ViewData

January 7, 2012 at 11:35 PMAdmin

最近,我忙於寫一個使用ASP.Net MVC的一個CMS。因此,我需要在ViewData的HTML內容。

不過,我們一般在View中,會使用<%: ViewData["Content"] %>。這一個方法,不顯示HTML,只會顯示HTML代碼,例如<b>test</b>。

所以,需要改用"<%=".例如<%: ViewData["Content"] %>,它顯示出test

Posted in: C#

Tags:

在Windows Services中請System.Timers.Timer

January 7, 2012 at 11:10 PMAdmin

剛剛寫了Windows Services。在這個Services中,需要定時執行一些程序,所以需要用一個Timer。

於是從Toolbar內Timer drag and drop到那Services的Design View中,結果那個Timer沒有定時執行那些程序。想來想去不通問題在哪裡,結果經過一輪除錯,發現那個Timer是Windows.Forms.Timer。它不會在Windows Services中運作。只可以System.Timers中Timer。

所以請在 OnStart(string[] args)

System.Timers.Timer timer2 = new System.Timers.Timer();
timer2.Interval = 10000;
timer2.Enabled = true;
timer2.Elapsed += new System.Timers.ElapsedEventHandler(timer2_Elapsed);

Posted in: C#

Tags:

請用Convert.ToString

January 7, 2012 at 5:20 PMAdmin

所有Object都有ToString() Method可以將它傳成為String。如:

string str= Object.ToString()

不過,很容易做成NullException。所以可以改用Convert.ToString,那麼不怕NullException。

string str=Convert.ToString(Object);

Posted in: C#

Tags:

Mutex Lock範例

January 7, 2012 at 4:14 PMAdmin

最近,我寫了一個Mutex Lock的C#範例。這個範例示範了何如使用Mutli-thread,並將參數(Parameters)傳送至Thread 內。而且使用Mutex Lock確保只有一個Thread在執行狀態。請按此下載範例程式碼。

Posted in: C#

Tags: