2014-05-23 3 views
2

동적으로 (페이지로드시)이를 Visible=false으로 설정하여 렌더링되지 않기를 원합니다. 나는 runat=server을 시도했지만 가상 경로에만 해당됩니다.스크립트 태그를 동적으로 렌더링하지 않는 방법은 무엇입니까?

+0

소스에서 스크립트 태그를 제거 하시겠습니까? – Adil

+0

@Adil 가끔은 필요로하고 때로는 렌더링하지 않기를 바래요. 그것은 런타임에만 알려질 것입니다. – ispiro

+0

이 링크 확인 http://stackoverflow.com/questions/19414829/removing-script-tags-from-html-pages-using-c-sharp – Hassan

답변

2

ClientScriptManager.RegisterClientScriptBlock 또는 ClientScriptManager.RegisterStartupScript을 사용하여 조건부로 스크립트를 추가 할 수 있습니다.

if (condition) 
{  
    String csname2 = "ButtonClickScript"; 
    Type cstype = this.GetType(); 
    StringBuilder cstext2 = new StringBuilder(); 
    cstext2.Append("<script type=\"text/javascript\"> function DoClick() {"); 
    cstext2.Append("Form1.Message.value='Text from client script.'} </"); 
    cstext2.Append("script>"); 
    cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false); 
} 

당신이 다음 파일 일부 JS의 스크립트를 넣고 ASP.NET 마크 업 언어에서 ClientScriptManager.RegisterClientScriptInclude

if (condition) 
{ 
    ClientScriptManager cs = Page.ClientScript; 
    cs.RegisterClientScriptInclude("ScriptKey", "ScriptURLToInclude"); 
} 
+0

감사합니다. 유망 해 보인다. – ispiro

+0

'script' 태그를 추가하는 경우 왜 마지막 매개 변수가'false'입니까? – Andrei

+0

As ScriptClientScriptBlock에 전달되는 문자열에 스크립트 태그가 있습니다. – Adil

2

을 사용할 수 있습니다 작지 않은 스크립트가 경우의 렌더링을 조종 할 수 있습니다 임의의 내용. 특정 조건에서만 스크립트 태그를 렌더링하면 다음과 같이 간단해야합니다.

<% if (shouldRenderScriptTag) { %> 
    <script src="..." /> 
<% } %> 
+0

+1. 나는 아직도 어느 대답을 받아 들일지 결정할 수 없다. 실제 질문에 대답했지만 Adil은 기본 질문에 대답했습니다. 둘 다 신용받을 자격이있어. 오, 음, 어떤 점에서 나는 결정할 것이다 :) 그리고 다시 감사드립니다. – ispiro

+0

@ispiro - 문자 그대로의 대답은 매우 간단해서 커뮤니티에 한계가있을 것이라고 생각합니다. Adil의 대답으로 코드를 좀 더 잘 디자인하면 도움이 될 것입니다. – chiccodoro

관련 문제