我有一个带有GridTemplateColumn的Telerik RadGrid,其中包含一个复选框,如下所示:
<telerik:GridTemplateColumn HeaderText="MINE" UniqueName="MyTemplateColumn">
<ItemTemplate>
<asp:CheckBox id="MyCheckBox" runat="server"></asp:CheckBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
我想根据从数据库读取的值将框设置为"checked" . 我可以处理ItemDataBound事件并在绑定每一行时读取数据库,但这会导致n次查找 . 相反,我想处理DataBound,然后一次设置所有值 . 所以,在那个方法中,我想要这样的代码:
// read all values from database first, then...
foreach(var chkbox in MyRadGrid.MasterTableView.Columns.FindByUniqueName("MyTemplateColumn").FindControl("MyCheckBox")) {
chkbox.Checked = oneValue;
}
这不起作用,因为FindControl不是GridColumn的方法,它不会生成复选框的可迭代列表 . 迭代模板列中的复选框的正确方法是什么?谢谢!
2 回答
Telerik在他们的论坛上回复了我,答案如下:
希望这对某人有用!
我有同样的问题..这就是我做的..
'创建一个现在使用的本地哈希表,否则
'加载页面加载私有函数GetMembers()作为布尔值
'检查包含受保护的子RadGrid2_ItemDataBound(ByVal sender As Object,ByVal e As Telerik.Web.UI.GridItemEventArgs)处理RadGrid2.ItemDataBound