2011-05-11 5 views
2

제목과 마찬가지로. runat = server라는 모든 컨트롤을 사용할 수 없게하는 코드가 있습니다. 그것의 다음과 같습니다vb.net의 마스터 페이지에서 콘텐츠 페이지에 href 사용 안 함

Dim c As Control 
For Each c In pc 
    If c.HasControls Then DisableAllControls(c.Controls) 

    If c.GetType.ToString.ToLower.IndexOf("webcontrols.dropdownlist") > -1 Then 
     DirectCast(c, DropDownList).Enabled = False 
    ElseIf c.GetType.ToString.ToLower.IndexOf("webcontrols.textbox") > -1 Then 
     DirectCast(c, TextBox).Enabled = False 
    ElseIf c.GetType.ToString.ToLower.IndexOf("webcontrols.radiobuttonlist") > -1 Then 
     DirectCast(c, RadioButtonList).Enabled = False 
    ElseIf c.GetType.ToString.ToLower.IndexOf("webcontrols.radiobutton") > -1 Then 
     DirectCast(c, RadioButton).Enabled = False 
    ElseIf c.GetType.ToString.ToLower.IndexOf("webcontrols.button") > -1 Then 
     DirectCast(c, Button).Enabled = False 
    End If 
Next 

하지만 거기에 몇 href의 나는 또한 해제 싶어요. 나는 그들이 runat 서버를 가지고 있지 않다는 것을 알고 있습니다. 그래서 어떻게 잡을 수 있습니까?

+0

죄송합니다. 여기서 코드의 형식을 지정하는 방법을 모르겠습니다. – pollko

+0

이걸로 내 편에서는 각 href의 이름을 가져와 비활성화해야합니다. 이치에 맞지 않는다. 내 코드를 읽으면 모든 버튼을 사용할 수 없게됩니다. ddl의 txtboxes. 태그도 동일하게 처리해야합니다. –

답변

0

runat = "server"를 HTML 컨트롤에도 추가 할 수 있습니다. 이를 사용하지 않으면 서버 측에서 컨트롤에 액세스 할 수 없으며 비활성화 할 수 없습니다.

0

그 코드는 유효하지 않습니다 (If c.HasControls Then DisableAllControls(c.Controls)은 일치하지 않습니다. End If).하지만 VB.NET은 실현하지 않고도 If 인라인 구문을 추가했습니다. 당신은 아마도 (그들에게 runat="server"를하지 추가 할 수 있습니다, 그 다른 요소를 "해제"로, 이제

For Each c as WebControl In pc.OfType(Of WebControl)() 
    ' Put your recursive call here as before 
    c.Enabled = False 
Next 

:

어쨌든, 지금까지의 모든 runat="server" 컨트롤을 사용하지 않도록 설정, 당신은이 작업을 수행 할 수 있어야한다 심지어 HTML을 생성 한 경우에도 가능) 또는 일부 JavaScript를 사용할 수 있습니다. 나는 당신이 <a> 태그의 경우 숨기기를 의미하는 것으로 간주할까요?

$(document).load(function() { 
    $('a').hide(); 
}); 

나 :

jQuery를 샘플 스크립트 같은 것을 인으로,이 쉽게

/* hides all a tags under an element with class="someClass" */ 
$(document).load(function() { 
    $('.someClass a').hide(); 
}); 
당신은 다음 코드가 페이지에 이런 식으로 뭔가를 사용하여,이 스크립트를 렌더링 할 수

:

Dim script as String = "" /* your javascript here */ 
Me.ClientScript.RegisterClientScriptBlock(Me.GetType(), "HideTagsScript", script) 
관련 문제