2010-10-14 38 views
0

我已經使用ckeditor,用戶可以在其中提交數據到數據庫中的數據,但是當數據填充到數據網格中時,它也帶有相同樣式的IE 但我希望它是以純文本形式填充時。 用於填充數據的功能如下:在asp.net中的Html條

protected void LoadQA(int intQuestionId) 
{ 
    string strSelectQuery = "SELECT TITLE, DESCRIPTION, ANSWER, FK_OWNER_ID, CREATED_ON FROM M_QA WHERE PK_ID = " 
          + intQuestionId + " AND IS_ACTIVE = 1"; 

    OleDbConnection connectionSelectQuestion = new OleDbConnection(ConfigurationSettings.AppSettings["SQLConnectionString"]); 
    OleDbCommand commandSelectQuestion = new OleDbCommand(strSelectQuery, connectionSelectQuestion); 
    OleDbDataReader readerSelectQuestion; 
    try 
    { 
     connectionSelectQuestion.Open(); 
     readerSelectQuestion = commandSelectQuestion.ExecuteReader(); 
     if (readerSelectQuestion.Read()) 
     { 
      lblHeader.Text = "View Q&A"; 
      txtTitle.Text = readerSelectQuestion["TITLE"].ToString(); 

      if (readerSelectQuestion["TITLE"].ToString().Length > 50) 
      { 
       ViewState["QA_Title"] = readerSelectQuestion["TITLE"].ToString().Substring(0, 50) + "..."; 
      } 
      else 
      { 
       ViewState["QA_Title"] = readerSelectQuestion["TITLE"].ToString(); 
      } 

      txtDescription.Text = readerSelectQuestion["DESCRIPTION"].ToString(); 
      hlnkQuestionBy.Text = clsCommons.SayUserName(readerSelectQuestion["FK_OWNER_ID"].ToString()); 
      hlnkQuestionBy.NavigateUrl = "AddMember.aspx?id=" + readerSelectQuestion["FK_OWNER_ID"].ToString(); 
      lblAskedOn.Text = readerSelectQuestion["CREATED_ON"].ToString(); 

      if (this.Session["UserId"].ToString() != "1") 
      { 
       btnUpdate.Visible = false; 
       txtEditorAnswer.Visible = false; 
       divQaDescription.Visible = true; 
       divQaDescription.InnerHtml = Server.HtmlDecode(readerSelectQuestion["ANSWER"].ToString()); 
      } 
      else 
      { 
       txtEditorAnswer.Text = readerSelectQuestion["ANSWER"].ToString(); 
      } 
     } 
     else 
     { 
      lblError.Text = "ERROR WHILE READING QA DATA!"; 
     } 
    } 
    catch (Exception ex) 
    { 
     ExceptionLogger.LogException(ex); 
     lblError.Text = ex.Message; 
    } 
    finally 
    { 
     if (connectionSelectQuestion != null) 
     { 
      connectionSelectQuestion.Close(); 
     } 
    } 
} 

什麼樣的變化,我需要作出讓DataGrid中的純文本。

感謝您的幫助..

+0

這裏txtEditorAnswer是我的ckeditor。 – Srivastava 2010-10-14 11:13:42

+0

[Asp.NET - Strip HTML Tags]的可能重複(http://stackoverflow.com/questions/785715/asp-net-strip-html-tags) – Natrium 2010-10-15 08:34:22

回答

1

這裏有一些SQL代碼可以爲您剝去標籤。

declare @string varchar(max), --string to remove html from 
    @a varchar(max), --holds left part of string after removal 
    @b varchar(max) --holds right part of string after removal 

set @string='<htlml><head><title></title></head><body>This is the body. <p>This is a paragraph.</p></body></html>' 

declare @i bit, --determines if there are any more tags in the string 
    @start int, --position of the first < character 
    @end int --position of the first > character 


set @i='false' --set default value 

--set the positions of the first tag 
select @start=CHARINDEX('<',@string), 
@end=charindex('>',@string) 


--only do the loop if there is a tag 
if (@start>0 and @end>0) set @i='true' 



while (@i='true') 
begin 

    set @a='' --reset 
    set @b='' --reset 

    set @a=LEFT(@string,@start-1) 
    set @b=RIGHT(@string,len(@string)[email protected]) 

    --select @a, @b 

    set @[email protected][email protected] 

    select @start=CHARINDEX('<',@string), 
     @end=charindex('>',@string) 

    if (@start>0 and @end>0) set @i='true' else set @i='false' 


end 


select @string 

但請記住,如果文本包含<或>,則不會考慮此代碼。