2013-07-01 44 views
4

我有一個TinyMCE的腳本返回我的ASP.NET頁面,並與功能SaveFAQ()我們可以節省了TineMCE使用textarea的(一個或多個)的幫助,任何價值。TinyMCE的犯規第一次我節省

private void SaveFAQ(bool returnToFAQ = false) 
{ 
    DataSet ds = new DataSet(); 

    if (mceQuestion.Value.Length > 7) 
     if (mceQuestion.Value.Substring(0, 3) == "<p>" && "</p>" == mceQuestion.Value.Substring(mceQuestion.Value.Length - 4, 4)) 
     { 
      mceQuestion.Value = mceQuestion.Value.Substring(3, mceQuestion.Value.Length - 7); 
     } 

    DateTime? faqFromDate; 
    DateTime tmp; 
    if (DateTime.TryParse(txtQuestionOfTheDay.Text, out tmp)) 
     faqFromDate = tmp; 
    else 
     faqFromDate = null; 

    ds = _server.AdminSaveFAQ(FAQ_Id, chbHighlight.Checked, LAN_Id_Primary, mceQuestion.Value, mceAnswer.Value, txtFlash.Text, mceStepByStep.Value, mceTip.Value, faqFromDate, chbImportant.Checked); 

    if (FAQ_Id == 0) 
     FAQ_Id = (int)ds.Tables[0].Rows[0]["FAQ_Id"]; 

    foreach (Control c in pnlCheckbox.Controls) 
    { 
     if (c.GetType() == typeof(CheckBox)) 
      _server.AdminSaveFAQCategory(FAQ_Id, int.Parse(((CheckBox)c).ID), ((CheckBox)c).Checked); 
    } 

    if (!returnToFAQ) 
    { 
     lblStatusUp.Visible = true; 
     lblStatusDown.Visible = true; 

     if (!ds.DataSetEmpty()) 
     { 
      lblStatusUp.Text = "Saved successfully!"; 
      lblStatusDown.Text = "Saved successfully!"; 
      lblStatusUp.ForeColor = System.Drawing.Color.Green; 
      lblStatusDown.ForeColor = System.Drawing.Color.Green; 
     } 
     else 
     { 
      lblStatusDown.Text = "Error while saving!"; 
      lblStatusUp.Text = "Error while saving!"; 
      lblStatusUp.ForeColor = System.Drawing.Color.Red; 
      lblStatusDown.ForeColor = System.Drawing.Color.Red; 
     } 
    } 
    else 
    { 
     //if (Session["PreviousPage"] != null) Response.Redirect(Session["PreviousPage"].ToString()); 
     Response.Redirect("~/Administration/FAQ.aspx"); 
    } 
} 

我第一次按下保存按鈕會觸發其執行該功能SaveFAQ();一個事件。它成功地在數據庫中創建了一行,但字符串mceQuestion.Value & mceAnswer.Value爲空。第二次按下按鈕時,它會觸發完全相同的事件,並且值被填充併成功保存。

我怎麼能這樣做,我只是必須按保存一次?

感謝所有的答案,有一個偉大的日子!

編輯: 這裏是mceQuestion;

<textarea ID="mceQuestion" runat="server" cols="100" rows="6" /> 

編輯2: 一直試圖比較這與節約的消息儲蓄(這是完全正常工作)。沒有太大的區別,我一直在測試這個SaveFAQ()的差異,但是這並沒有削減它。

這裏是我的TinyMCE的設置,如果它們可能會派上用場。

<script type="text/javascript"> 
    tinyMCE.init({ 
     // General options 
     mode: "textareas", 
     theme: "advanced", 
     plugins: "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template", 

     // Theme options 
     theme_advanced_buttons1: ",bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect", 
     theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor", 
     theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen", 
     theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage", 
     theme_advanced_toolbar_location: "top", 
     theme_advanced_toolbar_align: "left", 
     theme_advanced_statusbar_location: "bottom", 
     theme_advanced_resizing: true, 

     // Skin options 
     skin: "o2k7", 
     skin_variant: "silver", 

     // Example content CSS (should be your site CSS) 
     //content_css: "css/example.css", 

     // Drop lists for link/image/media/template dialogs 
     template_external_list_url: "js/template_list.js", 
     external_link_list_url: "js/link_list.js", 
     external_image_list_url: "Images.aspx", 
     media_external_list_url: "js/media_list.js", 

     // Replace values for the template plugin 
     //template_replace_values: { 
     // username: "Some User", 
     // staffid: "991234" 
     //} 
    }); 
</script> 

我感謝任何反饋,答案或提示,這可能會或導致我在正確的方向!

+0

什麼是MceQuestion?這是隱藏的領域嗎? –

+0

@FullTimeSkeleton - 這是一個textarea,我把它的代碼包含在問題中。 –

回答

5

我通過添加OnClientClick="tinyMCE.triggerSave(false,true);"到每個保存按鈕固定它。