When items are data bound, their IDs should be stored in the ViewState so the next time they are recreated (upon a postback), they have the same IDs, so postback events can be raised. Also, when a new datasource is provided to the tilelist, keeping track of the IDs will let the control create tiles with the same IDs that were used instead of incremental ones. Both of these will prevent the tiles ID change in the first two page loads after a DataBind() call. Note that this applies only for the case when AppendDataBoundItems is false; when it is true new datasources should only add items. A workaround is to set IDs to the tiles manually when they are created (this can be done with a simple counter variable). To accommodate for rebinding the tilelist, its controls collection must be cleared prior to databinding as a workaround. A sample is attached that shows these in action.
A possible workaround is to cancel the OnClientClicking and OnClientSelecting events of the tile. Additionally, add a custom CSS class that will also enable you to apply some custom styling to disabled tiles, because most browsers do not have a disabled state for div elements. The CSS class is what is used to distinguish disabled tiles instead of the disabled attribute. NOTE: this will be fixed in the Q1 2014 SP1 release. Here is a workaround example for RadTileList: <script type="text/javascript"> function preventDisabledTileClicks(tileList, args) { var tile = args.get_tile(); if ($telerik.$(tile.get_element()).hasClass("disabledTile")) { args.set_cancel(true); } } </script> <telerik:RadTileList ID="RadTileList1" runat="server" SelectionMode="Multiple" OnClientTileSelecting="preventDisabledTileClicks" OnClientTileClicking="preventDisabledTileClicks"> <Groups> <telerik:TileGroup> <telerik:RadTextTile runat="server" ID="S5_1" Text="5S"> </telerik:RadTextTile> <telerik:RadTextTile runat="server" ID="OEE_2" Text="OEE" CssClass="disabledTile" Enabled="false"> </telerik:RadTextTile> <telerik:RadTextTile runat="server" ID="SMED_3" Text="SMED" CssClass="disabledTile" Enabled="false"> </telerik:RadTextTile> <telerik:RadTextTile runat="server" ID="VSM_4" Text="VSM" CssClass="disabledTile" Enabled="false"> </telerik:RadTextTile> <telerik:RadTextTile runat="server" ID="RCM_5" Text="RCM" CssClass="disabledTile" Enabled="false"> </telerik:RadTextTile> <telerik:RadTextTile runat="server" ID="TPM_6" Text="TPM" CssClass="disabledTile" Enabled="false"> </telerik:RadTextTile> </telerik:TileGroup> </Groups> </telerik:RadTileList> If you are using Standalone tiles you can attach to their OnClientSelecting and OnClientClicking events. Instead of getting the tile from the event arguments, you will get it as the first argument the handler receives. To make this more reusable, you can use ASP Themes to apply this on an application level and include the script in a common script on a master page.
With more than 9 columns (36 wide tiles or 72 square tiles with TileRows=4) the subsequent tile columns fall down on a second row. With TileRows=2 the breaking point would be 19 wide or 37 square tiles. Ways around this are: - separating tiles into more groups, if possible. When databinding the DataGroupNameField is used to point to the desired group name as a field in the datasource - when creating tiles programmatically you can count them and create new groups when needed - if you do not need any special functionality provided by RadTileList you can consider creating standalone tiles
The same number of tiles that are hidden from the given group are lost from its end upon postback.
RadTileList currently has the EnableDragAndDrop behavior but no way to react to these events. Also, add RadTileList to the category list in the feedback portal
Setting the CssClass property of a tile does not transfer the custom class attribute to the rendered markup. This means that custom classed cannot be used to create a cascade and style concrete tiles.
A postback occurs from the button, but its postback events are not raised (the Click event handler for the button)
<telerik:RadIconTile ImageUrl="./images/info_icon.png" NavigateUrl="./add_loading_sign.aspx"></telerik:RadIconTile> works, <telerik:RadIconTile ImageUrl="~/images/info_icon.png" NavigateUrl="~/add_loading_sign.aspx"></telerik:RadIconTile> Does not work, but it should.