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.