2011-11-05 81 views
3

我有一個問題。C#attributecollection.add撇號

這是我的代碼行:

HtmlTableRow row = new HtmlTableRow(); 
row.Attributes.Add("style", "cursor: pointer;"); 
row.Attributes.Add("onClick", string.Format("toggle('{0}');", AttributeName)); 

我用它的.Net 2.0和它工作得很好。但現在我正在使用.net 4.0和撇號 在我的網頁中轉換爲',並且它不再工作。

我怎樣才能得到撇號本身或繞過這個問題?

N.B.它似乎是一個known problem ...

回答

0

編碼的自變量爲'是完全有效的,所以它不是你的實際問題。使用onclick="toggle('asdf')"onclick="toggle('asdf')"是等同的。

演示:http://jsfiddle.net/Guffa/FkYut/

你必須尋找一個不同的原因代碼不起作用。

+0

嗨,當我在我的源代碼中找到/替換一切正常再次......這就是爲什麼我仍然認爲這是問題... –

+0

也許問題是與我的HTML標題格式 –

0

好的...還沒有回答...所以這是我的工作。

HtmlGenericControl dynDiv = new HtmlGenericControl("div"); 

dynDiv = Replace(dynDiv, "'", "'"); 

public HtmlGenericControl Replace(HtmlGenericControl htmlGenericControl, string  
source, string target) 
{ 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter htmlTextWriter = new HtmlTextWriter(sw); 
    htmlGenericControl.RenderControl(htmlTextWriter); 
    string str = sw.GetStringBuilder().ToString(); 

    str = str.Replace(source, target); 
    htmlGenericControl.InnerHtml = str; 

    return htmlGenericControl; 
} 

小錯誤 - 由於某種原因,複製在ResultPage.aspx的「格」的標籤,但它不會干擾代碼,所以我不在乎。

但 - 當我試圖用它爲HtmlGenericControl script = new HtmlGenericControl("script");它打破了代碼。所以在這裏,解決方法是直接在ResultPage.aspx - > view Designer - > source中植入實際的java腳本代碼。

<script type="text/javascript"> 
    My Script (with the apostrophe...) 
</script> 

享受! :)