Customizing the toolbox in Ria OLAP controls
Posted by - NA - on 21 August 2009 04:46 PM
|
|
This article discusses customizing Ria OLAP control's toolbox. Read the article on the HTML OLAP Grid toolbox customization here. You can add your own buttons, specifying their appearance, tooltip, the way of handling the pressing event, including callback, postback and client script. Overriding the on-click actions of the standard toolbox buttonsFor overriding the standard on-click actions you should handle the ToolboxItemAction event. For example, let's override the standard on-click action of the Save button. The default on-click action is saving the current state of the Grid and sending it to the user in a XML file. We'll make it save the current Grid state to the database: protected void TOLAPGrid1_ToolboxItemAction(object sender, GridToolboxItemActionArgs e) { if (e.Item is RSaveLayoutToolboxButton) { string xmlstring = TOLAPGrid1.Serializer.XMLString; // save the string to the database e.Handled = true; } } Adding new buttons to the ToolboxTo add a button to the Toolbox you just need to put an appropriate object to the Buttons.CustomButtons collection. You can do it either programmatically (in the Page_Init event handler, not later!) or in DesignTime.
protected void TOLAPGrid1_Init(object sender, EventArgs e) { //Create the custom button that calls the client script RCustomToolboxButton item = new RCustomToolboxButton(); item.ButtonID = "13460583-0ae4-4ec3-8d2f-2cbf914928a0"; item.ButtonType = TToolButtonType.Button; item.ClientScript = "alert('Hello!')"; item.Tooltip = "Custom button (calls the client script)"; item.Visible = true; item.Image = "~/Images/scriptBtn.png"; item.HandlingType = TClientActionHandlingType.ClientOnly; TOLAPGrid1.Buttons.fToolItems.Add(item.ButtonID, item); //Create the custom button that sends the callback on the server item = new RCustomToolboxButton(); item.ButtonID = "50257885-2cca-4290-86e0-618a57bf62a0"; item.ButtonType = TToolButtonType.Button; item.Tooltip = "Custom button (PostBack)"; item.Visible = true; item.Image = "~/Images/postbackBtn.png"; item.HandlingType = TClientActionHandlingType.Postback; TOLAPGrid1.Buttons.fToolItems.Add(item.ButtonID, item); //Create the custom button that sends yhe postback on the server item = new RCustomToolboxButton(); item.ButtonID = "c9fb43c6-6c59-40d5-8255-eaee767c0b21"; item.ButtonType = TToolButtonType.Button; item.Tooltip = "Custom button (CallBack)"; item.Visible = true; item.Image = "~/Images/callbackBtn.png"; item.HandlingType = TClientActionHandlingType.Callback; TOLAPGrid1.Buttons.fToolItems.Add(item.ButtonID, item); } For processing the pressing of the button, you need to write a ToolboxItemAction event handler: protected void TOLAPGrid1_ToolboxItemAction(object sender, GridToolboxItemActionArgs e) { if ((e.Item is RCustomToolboxButton) && (e.Item.ButtonID == "50257885-2cca-4290-86e0-618a57bf62a0")) { // do some action } } | |
|