I'm having quite the issue trying to DataBind a bool? value to the Enabled property slider in a GridTemplateColumn of a Grid.
Here is my setup:
This is not working at all. Every item in the slider still remains enabled. Note, while the "Static" bool's can be null, I tried this is with a bool value guaranteed not to be null using Enabled='<%# !(bool)DataBinder.Eval(Container, "DataItem.NormalBool") %>' , and it still doesn't work.
I even tried to do Text='<%# DataBinder.Eval(Container, "DataItem.SomeText") %>' and that didn't show up. Nothing seems to DataBind to the Sliders.
Any advice?
I know I can do all of this through the Grid's itemdatabound, but I'd prefer not to.
Here is my setup:
<telerik:RadGrid ID=
"_rgPermissions"
runat=
"server"
AutoGenerateColumns=
"False"
HeaderStyle-Font-Bold=
"true"
AllowSorting=
"true"
GridLines=
"None"
Width=
"517px"
Height=
"595px"
Skin=
"Office2007"
OnNeedDataSource=
"_rgPermissions_NeedDataSource"
OnItemDataBound=
"_rgPermissions_ItemDataBound"
Visible=
"false"
>
<AlternatingItemStyle BackColor=
"#f4f5f7"
/>
<GroupingSettings CaseSensitive=
"false"
/>
<MasterTableView>
<Columns>
<telerik:GridBoundColumn UniqueName=
"roleName"
ItemStyle-Font-Size=
"X-Small"
DataField=
"roleName"
HeaderText=
"Role"
>
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName=
"SliderPermissions"
HeaderText=
"Permissions"
ItemStyle-HorizontalAlign=
"Center"
HeaderStyle-Width=
"300px"
>
<ItemTemplate>
<telerik:RadSlider runat=
"server"
ID=
"_slPermissions"
Orientation=
"Horizontal"
Width=
"325px"
Height=
"40"
TrackPosition=
"Center"
ItemType=
"Item"
Skin=
"Windows7"
OnClientBeforeValueChange=
"IsItemDisabledOnPermissionsSlider"
>
<Items>
<telerik:RadSliderItem Text=
"None"
Value=
"None"
ToolTip=
"No permissions"
runat=
"server"
>
</telerik:RadSliderItem>
<telerik:RadSliderItem Text=
"View"
Value=
"View"
Enabled=
'<%# Convert.ToString(DataBinder.Eval(Container, "DataItem.View_Static")).Equals("") ? true : !(bool)DataBinder.Eval(Container, "DataItem.View_Static") %>'
ToolTip=
"Role can view folder and its contents"
runat=
"server"
></telerik:RadSliderItem>
<telerik:RadSliderItem Text=
"Add"
Value=
"Add"
Enabled=
'<%# Convert.ToString(DataBinder.Eval(Container, "DataItem.Add_Static")).Equals("") ? true : !(bool)DataBinder.Eval(Container, "DataItem.Add_Static") %>'
ToolTip=
"Role can upload files to folder or create new folders within"
runat=
"server"
>
</telerik:RadSliderItem>
<telerik:RadSliderItem Text=
"Edit"
Value=
"Edit"
Enabled=
'<%# Convert.ToString(DataBinder.Eval(Container, "DataItem.Edit_Static")).Equals("") ? true : !(bool)DataBinder.Eval(Container, "DataItem.Edit_Static") %>'
ToolTip=
"Role can edit folder and its contents"
runat=
"server"
></telerik:RadSliderItem>
<telerik:RadSliderItem Text=
'Delete'
Value=
"Delete"
Enabled=
'<%# Convert.ToString(DataBinder.Eval(Container, "DataItem.Delete_Static")).Equals("") ? true : !(bool)DataBinder.Eval(Container, "DataItem.Delete_Static") %>'
ToolTip=
"Role can delete folder and its contents"
runat=
"server"
></telerik:RadSliderItem>
</Items>
</telerik:RadSlider>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField=
"View_Static"
Visible=
"false"
UniqueName=
"View_Static"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField=
"Add_Static"
Visible=
"false"
UniqueName=
"Add_Static"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField=
"Edit_Static"
Visible=
"false"
UniqueName=
"Edit_Static"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField=
"Delete_Static"
Visible=
"false"
UniqueName=
"Delete_Static"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName=
"roleID"
Visible=
"false"
DataField=
"roleID"
AllowSorting=
"true"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName=
"parentMasterID"
DataField=
"parentMasterID"
Visible=
"false"
AllowSorting=
"true"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField=
"FolderPermissionsID"
Visible=
"false"
UniqueName=
"FolderPermissionsID"
>
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<HeaderStyle BorderColor=
"DarkGray"
BorderStyle=
"Solid"
BorderWidth=
"1px"
/>
</telerik:RadGrid>
<telerik:RadCodeBlock ID=
"_rcb"
runat=
"server"
>
<script type=
"text/javascript"
>
function IsItemDisabledOnPermissionsSlider(sender, args) {
if
(!sender.get_items()[args.get_newValue()].get_enabled())
args.set_cancel(
true
);
}
</script>
</telerik:RadCodeBlock>
This is not working at all. Every item in the slider still remains enabled. Note, while the "Static" bool's can be null, I tried this is with a bool value guaranteed not to be null using Enabled='<%# !(bool)DataBinder.Eval(Container, "DataItem.NormalBool") %>' , and it still doesn't work.
I even tried to do Text='<%# DataBinder.Eval(Container, "DataItem.SomeText") %>' and that didn't show up. Nothing seems to DataBind to the Sliders.
Any advice?
I know I can do all of this through the Grid's itemdatabound, but I'd prefer not to.