Dear Telerik Team
I want to create a page, where the tiles are loaded dynamically from the database. Therefore I added a RadTileList, a RadPersistenceManager and a CustomStorageProvider. When I drag the tiles, the xml will be saved into the database in the correct format.
After calling the page again the tiles should be shown in the same position. Therefore I use the LoadState() method of the Persistencemanager. The xml string is loaded in the right format and with right information into the RadPersistanceManager. But after rendering the page, only one tile is shown. Although all tiles has been successfully loaded into the RadTileList before.
Thank you for your help
Greetings
Thomas Luck
I want to create a page, where the tiles are loaded dynamically from the database. Therefore I added a RadTileList, a RadPersistenceManager and a CustomStorageProvider. When I drag the tiles, the xml will be saved into the database in the correct format.
After calling the page again the tiles should be shown in the same position. Therefore I use the LoadState() method of the Persistencemanager. The xml string is loaded in the right format and with right information into the RadPersistanceManager. But after rendering the page, only one tile is shown. Although all tiles has been successfully loaded into the RadTileList before.
Thank you for your help
Greetings
Thomas Luck
01.
using
System;
02.
using
Telerik.Web.UI;
03.
04.
namespace
Isonet.TxpEnterprise.Developer
05.
{
06.
public
partial
class
DynamicRadTileList : Page
07.
{
08.
private
RadTileListManager myTileManager;
09.
private
const
int
myUserId = 1;
10.
protected
void
Page_Load(
object
sender, EventArgs e)
11.
{
12.
uiRadPersistenceManager.StorageProvider =
new
DbStorageProvider();
13.
myTileManager =
new
RadTileListManager();
14.
setUi();
15.
if
(!IsPostBack)
16.
{
17.
loadViewState();
18.
}
19.
}
20.
21.
private
void
setUi()
22.
{
23.
//gets all Tiles
24.
uiRadTileList.Groups.AddRange(myTileManager.GetRadTileGroupList(myUserId));
25.
uiRadTileList.TileRows = 4;
26.
}
27.
28.
protected
void
uiIconTileCreateTile_Click(
object
sender, EventArgs e)
29.
{
30.
uiRadTileList.Groups[0].Tiles.Add(myTileManager.CreateNewTile(uiColorPicker.SelectedColor, myUserId));
31.
}
32.
33.
private
void
saveViewState()
34.
{
35.
uiRadPersistenceManager.StorageProviderKey = myUserId.ToString();
36.
uiRadPersistenceManager.SaveState();
37.
}
38.
39.
private
void
loadViewState()
40.
{
41.
uiRadPersistenceManager.StorageProviderKey = myUserId.ToString();
42.
uiRadPersistenceManager.LoadState();
43.
}
44.
45.
protected
void
OnAjaxRequestHandler(
object
sender, AjaxRequestEventArgs e)
46.
{
47.
if
(e.Argument ==
"storeTileOrder"
)
48.
{
49.
saveViewState();
50.
}
51.
}
52.
}
53.
}
01.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DynamicRadTileList.aspx.cs" Inherits="Isonet.TxpEnterprise.Developer.DynamicRadTileList" %>
02.
03.
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
04.
<!DOCTYPE html>
05.
06.
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
07.
<
head
runat
=
"server"
>
08.
<
title
></
title
>
09.
</
head
>
10.
<
body
>
11.
<
form
id
=
"form1"
runat
=
"server"
>
12.
<
telerik:RadAjaxManager
ID
=
"uiRadAjaxManager"
runat
=
"server"
OnAjaxRequest
=
"OnAjaxRequestHandler"
>
13.
</
telerik:RadAjaxManager
>
14.
<
telerik:RadPersistenceManager
runat
=
"server"
ID
=
"uiRadPersistenceManager"
>
15.
<
PersistenceSettings
>
16.
<
telerik:PersistenceSetting
ControlID
=
"uiRadTileList"
/>
17.
</
PersistenceSettings
>
18.
</
telerik:RadPersistenceManager
>
19.
<
telerik:RadScriptManager
runat
=
"server"
ID
=
"RadScriptManager1"
EnablePageMethods
=
"True"
/>
20.
<
div
>
21.
<
asp:Button
ID
=
"create"
OnClick
=
"uiIconTileCreateTile_Click"
runat
=
"server"
Text
=
"Create"
/>
22.
<
telerik:RadColorPicker
ID
=
"uiColorPicker"
runat
=
"server"
></
telerik:RadColorPicker
>
23.
<
telerik:RadTileList
ID
=
"uiRadTileList"
runat
=
"server"
EnableDragAndDrop
=
"true"
OnClientTileDropped
=
"fuu"
SelectionMode
=
"Multiple"
Width
=
"100%"
>
24.
</
telerik:RadTileList
>
25.
</
div
>
26.
</
form
>
27.
<
script
type
=
"text/javascript"
>
28.
function fuu() {
29.
var ajaxManager = $find("<%= uiRadAjaxManager.ClientID %>");
30.
ajaxManager.ajaxRequest("storeTileOrder");;
31.
}
32.
</
script
>
33.
</
body
>
34.
</
html
>
01.
namespace
Isonet.TxpEnterprise.Developer
02.
{
03.
public
class
RadTileListManager
04.
{
05.
public
List<TileGroup> GetRadTileGroupList(
int
userId)
06.
{
07.
List<TileGroup> tileGroupList =
new
List<TileGroup>();
08.
tileGroupList.Add(
new
TileGroup());
09.
tileGroupList.Add(
new
TileGroup());
10.
tileGroupList.Add(
new
TileGroup());
11.
addExistingRadTilesToGroup(tileGroupList[0], userId);
12.
return
tileGroupList;
13.
}
14.
15.
private
void
addExistingRadTilesToGroup(TileGroup tileGroup,
int
userId)
16.
{
17.
foreach
(DataRow row
in
ds.Tables[0].Rows)
18.
{
19.
RadTextTile textTile =
new
RadTextTile();
20.
textTile.BackColor = Color.FromArgb(
int
.Parse(row.Field<
string
>(
"color"
)));
21.
tileGroup.Tiles.Add(textTile);
22.
}
23.
}
24.
}
25.
}