특정 조건이 확인되면 내 페이지에서 컨트롤 (텍스트 상자)을 제거해야합니다. 코드 숨김을 사용하거나 JavaScript를 사용해야합니다. 당신은 제거 할 수 있지만코드 숨김에서 asp.net 컨트롤 제거
this.Controls.Remove(control);
특정 조건이 확인되면 내 페이지에서 컨트롤 (텍스트 상자)을 제거해야합니다. 코드 숨김을 사용하거나 JavaScript를 사용해야합니다. 당신은 제거 할 수 있지만코드 숨김에서 asp.net 컨트롤 제거
this.Controls.Remove(control);
사용 Controls.Remove
또는 Controls.RemoveAt
을 부모 ControlCollection
에. 예를 들어
, 당신은 페이지의 상단에서 모든 텍스트 상자를 제거하려면 :
var allTextBoxes = Page.Controls.OfType<TextBox>().ToList();
foreach(TextBox txt in allTextBoxes)
Page.Controls.Remove(txt);
당신이를 제거하려면
또는 (당신이 Enumerable.OfType
에 대한 using System.Linq
를 추가 할 필요가 있습니다) 주어진 ID를 가진 TextBox :
TextBox textBox1 = (TextBox)Page.FindControl("TextBox1"); // note that this doesn't work when you use MasterPages
if(textBox1 != null)
Page.Controls.Remove(textBox1);
그냥 숨기고 싶다면 (cl ientside 완전히), 보이지 않게 할 수도 있습니다.
textBox1.Visible = false;
예, 당신은 페이지의 조작기 모음에서 제거 할 수 있습니다 그것은 컨트롤 컬렉션에서 왜 대신 그것을 숨기지 않을까요?
yourTextBox.Visible = false;
이렇게하면 생성 된 HTML이 브라우저로 전송되지 않습니다.
:
참고 내가 숨길 수 없습니다, 컨트롤을 제거해야 ...
.Visible=false
으로 설정하면 페이지에 렌더링되지 않습니다. 컨트롤 컬렉션에서 컨트롤을 제거하는 경우 예외가 발생하기 때문에 DataBind
, Init
, Load
, PreRender
또는단계 동안 변경하지 마십시오.
컨트롤을 동적으로 추가하거나 제거하면 문제가 발생할 수 있습니다.
는이 코드를 시도 할 수 있습니다 - Remove method
this.Controls.Remove(YourControl);
링크를 기반 : http://msdn.microsoft.com/en-US/library/system.web.ui.controlcollection.remove(v=vs.80).aspx
페이지 컨트롤 컬렉션에서 ID로 제거하면됩니다. – IrishChieftain
귀하의 상태는 언제 확인됩니까? 페이지 렌더링 전/도중입니까? 그렇지 않다면 실제로 페이지를 다시로드하지 않고 javascript/DOM이 필요합니다. –
@ J.Hudler page_load 동안 조건이 평가됩니다. – davioooh