星期六, 4月 01, 2006

動態產生FCKEditor的方法

  FCKEditor是一個強大的WYSWYG免費編輯器,可以輕鬆的整合入程式裡,而不需要太多的設定。網路上已有中文版的教學,可參考:亞當維奇的文章。
  但是在ASP.Net要利用FCKEditor的上傳功能時,就有點小不便了。首先,設定FileManager雖然可以很方便地把檔案上傳,但是不能管理上傳大小、空間的限制。其次,要將FileManager的路徑寫在web.config裡,會造成所有使用者都看到同一份上傳內容,也多有不便。
  參看FCKEditor線上說明文件,最後面提到了動態產生FCKEditor的方法,把它轉成C#以後如下:
private void populateFCK(string datavalue)
{
Session["FCKeditor:UserFilesPath"] = "/Web/Files/" + Request.QueryString["course"];
FredCK.FCKeditorV2.FCKeditor fck = new FredCK.FCKeditorV2.FCKeditor();
fck.BasePath = "~/FCKeditor/";
fck.ImageBrowserURL = "http://localhost:/Web/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/aspx/connector.aspx";
fck.ID = "unit_content";
fck.Value = datavalue;
fck.ToolbarSet = "Default";
Panel2.Controls.Add(fck);
fck.EnableViewState = true;
}
  因為我要把資料庫的值塞給FCKEditor,所以在此事件中就把值傳過來比較方便。好不容易試成功了以後,沒想到submit竟然出現了找不到reference的情況。翻閱ASP.Net論壇,原來是要在ispostback時再次動態產生FCKEditor,這樣就沒問題了。