我有一個數據綁定的CheckBoxList控件可以增長得相當大,所以我正在嘗試爲它創建一個過濾器。下面是我在做什麼:ASP.NET:在CheckBoxList控件中隱藏複選框項目
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>
元素而沒有繼承控件,這是一個「很好」的功能,我沒有時間做,所以我想知道是否有一個CSS技巧,我可以使用訪問元素的父級的父級(例如,<input type="checkbox"/>
- ><td>
- ><tr>
)。我之前使用過:first-child
僞元素,但是我的網頁搜索這種伎倆並沒有結果,所以我懷疑它。不能傷害問,雖然,對不對?
有沒有理由在綁定到複選框列表之前無法過濾數據源? – patmortech
你可以使用'RepeatLayout'來阻止它呈現爲表格:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkboxlist.repeatlayout.aspx – bgs264
@patmortech我覺得它會效率更高,重複調用數據庫,因爲用戶需要過濾,更改值,過濾,更改值等,然後單擊窗體的「保存」按鈕。 –