2011-11-05 3 views
3

문제가 있습니다.C# attributecollection.add 아포스트로피

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

내가 닷넷 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

ok ... 아직 대답하지 않았습니다 ... 이것은 내 주변 작품이었습니다.

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에서 "DIV"태그를 복제하지만 코드를 방해하지 않는, 그래서 난 상관 없어합니다.

하지만 내가 HtmlGenericControl script = new HtmlGenericControl("script");으로 사용하려고하면 코드가 깨집니다. 그래서이 작업은 실제 Java 스크립트 코드를 ResultPage.aspx -> 뷰 디자이너 -> 소스에 직접 이식하는 것이 었습니다.

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

즐기십시오! :)