데이터 바운드 CheckBoxList 컨트롤이 상당히 커질 수 있으므로 필터를 만들려고합니다. 여기에 내가 뭘하는지입니다 : 이것은 주로 작동ASP.NET : CheckBoxList 컨트롤의 CheckBox 항목 숨기기
foreach(ListItem item in this.UserRolesList.Items) {
if(!item.Value.StartsWith(this.RolesFilterList.SelectedValue)) {
item.Attributes.CssStyle["display"] = "none";
} else item.Attributes.CssStyle["display"] = "inline";
}
를 제외하고 ASP.NET은 CheckBoxList를 렌더링 할 때, 그렇게 자신의 <TR>
요소 내에 중첩 된 각 CheckBox 컨트롤과 함께 테이블을 사용하여 않습니다. 즉,보고 싶지 않은 항목이 표시되지 않더라도 행의 공백이 있으므로 여전히 만족해야 할 백인 페이스가 상당합니다.
컨트롤을 서브 클래 싱하지 않고 <TR>
요소에 액세스 할 수 있다는 것을 알지 못합니다.이 기능은 "할 가치가없는 기능"이므로 시간이 없으므로 요소의 부모 부모 (예 : <input type="checkbox"/>
-><td>
-><tr>
)에 액세스하는 데 사용할 수있는 CSS 트릭입니다. 이전에 :first-child
의사 요소를 사용했지만 웹에서 이러한 종류의 트릭을 검색하는 것이 효과적이지 않으므로 의심 스럽습니다. 그래도 아프지 않을거야. 그렇지?
체크 박스 목록에 바인딩하기 전에 데이터 소스를 필터링 할 수없는 이유가 있습니까? – patmortech
'RepeatLayout'으로 테이블 렌더링을 중단 할 수 있습니다 : http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkboxlist.repeatlayout.aspx – bgs264
@patmortech 사용자가 필터링, 값 변경, 필터, 값 변경 등을 수행하고 양식의 저장 버튼을 클릭해야하므로 데이터베이스를 반복적으로 호출하는 것이 더 효율적입니다. –