숨겨진 (visible="false"
) 패널은 포함되지 않은 요소에서 렌더링되지만 데이터 바인딩은 실행됩니다. 왜 그렇게 된거야? 더 중요한 것은 어떻게 피하는가? SelectedUser
가 null
이다보이지 않는 asp.net 패널에서 데이터 바인딩 방지
<asp:Panel ID="UserPanel" runat="server" visible="<%# SelectedUser != null %>">
<%# SelectedUser.Name %>
</asp:Panel>
경우, 패널이 렌더링되지 않고 SelectedUser.Name
평가되고 오류가 발생하는 경우 다음
필자는 분명히 <%# SelectedUser != null ? SelectedUser.Name : "" %>
이라고 쓸 수 있지만 혼란을 더합니다.
패널에 데이터 바인딩이 필요하지 않다는 것을 간단하고 우아하게 방지하는 방법이 있습니까?
Panel
컨트롤은 여기에 중요하지 않으며 runat="server"
인 일반 HTML 요소의 자리 표시 자일 수 있습니다.
이것은 좋은 해결책입니다. 'DataPlaceHolder'를 추가하는 것은 지불 할 높은 가격이 아니며 모든 것이 읽기 쉽도록 유지됩니다. 나는 그 클래스에 대해 다른 이름을 선호 할 것이다. – Mart
양방향 바인딩을 중지하려면 어떻게합니까? (BindItem). 이 DataPlcaeHolder 안에 visible = false로 텍스트 상자를 놓으면. 업데이트 메소드에서 여전히 바인드를 가져오고 null 값을 가져옵니다. – Yiping
아주 좋은 해결책. –