<telerik:RadRotator ID="RadRotator_Slider" PauseOnMouseOver="false" runat="server" Skin="cms" EnableEmbeddedSkins="false">
<ItemTemplate>
<asp:Image ID="Image" runat="server" style="cursor:pointer" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "Image") %>' AlternateText="" />
</ItemTemplate>
</telerik:RadRotator>
When Item is clicked, the following event is called and a redirection to
specified URL is executed:
Protected Sub RadRotator_Slider_ItemClick(o As Object, e As RadRotatorEventArgs) Handles RadRotator_Slider.ItemClick
Dim dt As DataTable = Session("DataSource")
Dim frame As RadRotatorItem = e.Item
Dim index As Integer = frame.Index
Dim Link As String = dt.Rows(index).Item("LinkAdress")
If Link <> "" Then Response.Redirect(Link)
End Sub
For some specific items, there is no URL. For those items, I would like to disable the
itemclick event and if possible, I would also like to change the cursor style when hovering
over the image back to normal. As a result, no postback action should be executed on items without url.
Is that possible?
protected void RadComboBox_StatusList_SelectedIndexChanged(object o, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs e){ SetMessage("Hello");}<telerik:RadComboBox ID="RadComboBox_StatusList" runat="server" DataSourceID="StatusList" AutoPostBack="true" OnSelectedIndexChanged="RadComboBox_StatusList_SelectedIndexChanged" DataTextField="Status" DataValueField="StatusID" SelectedValue='<%#Bind("StatusID") %>'></telerik:RadComboBox>void ITemplate.InstantiateIn(Control owner)
{
RadGrid rg = new RadGrid();
rg.ID = "UserManagementTemplateGrid";
rg.Width = 600;
rg.Skin = "Default";
rg.NeedDataSource += new GridNeedDataSourceEventHandler(rg_NeedDataSource);
rg.RegisterWithScriptManager = true;
rg.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;
rg.ShowHeader = true;
rg.AutoGenerateColumns = false;
rg.AutoGenerateEditColumn = false;
rg.AllowAutomaticInserts = true;
rg.AllowAutomaticUpdates = true;
rg.AllowAutomaticDeletes = true;
rg.AllowSorting = true;
rg.PageSize = 10;
rg.AllowPaging = true;
rg.MasterTableView.Name = "MasterTableView";
rg.MasterTableView.EditMode = GridEditMode.InPlace;
rg.MasterTableView.DataKeyNames = new string[] { "ID", "UserName", "Password", "Email", "UserTypeID", "Active" };
rg.MasterTableView.Columns.Add(AddBoundColumn("ID", "ID", false));
rg.MasterTableView.Columns.Add(AddBoundColumn("UserName", "User name", true));
rg.MasterTableView.Columns.Add(AddBoundColumn("Password", "Password", true));
rg.MasterTableView.Columns.Add(AddBoundColumn("Email", "Email", true));
rg.MasterTableView.Columns.Add(
AddTemplateDropDownListColumn("UserTypeID", ListTypes.UserType, "Type", "UserTypeName", "UserTypeID")
);
rg.MasterTableView.Columns.Add(
AddTemplateDropDownListColumn("Active", ListTypes.Active, "Active", "Active", "Active")
);
GridEditCommandColumn gecc = new GridEditCommandColumn();
gecc.UniqueName = "EditCommandColumn";
gecc.ButtonType = GridButtonColumnType.ImageButton;
gecc.EditText = "Edit";
gecc.UpdateText = "Save";
gecc.CancelText = "Cancel";
gecc.InsertText = "Add new";
rg.MasterTableView.Columns.Add(gecc);
rg.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.Top;
rg.MasterTableView.CommandItemSettings.AddNewRecordText = "Add new";
//grid events
rg.ItemInserted += new GridInsertedEventHandler(rg_ItemInserted);
rg.ItemUpdated += new GridUpdatedEventHandler(rg_ItemUpdated);
rg.ItemDeleted += new GridDeletedEventHandler(rg_ItemDeleted);
rg.InsertCommand += new GridCommandEventHandler(rg_InsertCommand);
//Adding RadGrid to Control
owner.Controls.Add(rg);
}
void rg_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
RadGrid rg = (RadGrid)sender;
rg.DataSource = User.GetUsers;
}
void rg_ItemInserted(object sender, GridCommandEventArgs e)
{
throw new NotImplementedException();
}
switch (e.CommandName){ case RadGrid.EditCommandName: e.Item.OwnerTableView.IsItemInserted = false; e.Item.Expanded = true; break; case RadGrid.InitInsertCommandName: // Cancel any edit form foreach (GridItem item in e.Item.OwnerTableView.Items) { if (item is GridEditableItem) { GridEditableItem ei = item as GridEditableItem; ei.Edit = false; } } break; default: break;}function onClientContextMenuItemClicking(sender, eventArgs) { var node = eventArgs.get_node(); var item = eventArgs.get_menuItem(); if (item.get_text() == "Edit") node.startEdit(); else if (item.get_text() == "Add") { var newnode = new Telerik.Web.UI.RadTreeNode(); newnode.set_text("New Item"); node.get_nodes().add(newnode); newnode.startEdit(); } }<telerik:GridBoundColumn HeaderText="Type" DataField="Type" UniqueName="Type" AutoPostBackOnFilter="true"> <FilterTemplate> <telerik:RadComboBox ID="cmbType" runat="server" DataSource="<%# TypeFilterItems %>" DataValueField="TypeId" DataTextField="Title" EmptyMessage="All" AllowCustomText="true" Width="130px" OnClientDropDownClosing="FilterOnType"> <ItemTemplate> <div class="combo-item-template"> <div class="clear"> <asp:CheckBox runat="server" ID="chkType" Checked="true" onclick="TypeCheckBoxClick(this)" style="float:left;" /> <p class="floatLeft"><%# Eval("Title") %></p> </div> </div> </ItemTemplate> </telerik:RadComboBox> <telerik:RadScriptBlock ID="RadScriptBlock3" runat="server"> <script type="text/javascript"> function FilterOnType(sender, args) { var tableView = $find("<%# Container.OwnerTableView.ClientID %>"); tableView.filter("Type", text, "Custom"); } function TypeCheckBoxClick(chk) { var combo = $find('<%# Container.FindControl("cmbType").ClientID %>'); // Get the collection of all items var items = combo.get_items(); text = ""; values = ""; // Enumerate all items for (var i = 0; i < items.get_count(); i++) { var item = items.getItem(i); // Get the checkbox element of the current item var chk1 = $get(combo.get_id() + "_i" + i + "_chkType"); if (chk1.checked) { text += item.get_text() + ","; values += item.get_value() + ","; } } // Remove the last comma from the string text = text.replace(/,$/, ""); values = values.replace(/,$/, ""); combo.set_text(text); } </script> </telerik:RadScriptBlock> </FilterTemplate></telerik:GridBoundColumn>
<telerik:RadContextMenu ID="OptionsRadContextMenu" runat="server" Skin="WebBlue"
CssClass="leftText">
<Targets>
<telerik:ContextMenuControlTarget ControlID="PopupMenuImage" />
</Targets>
<Items>
<telerik:RadMenuItem Text="Copy" ImageUrl="../App_Themes/GOLD Main/ToolBar/save_16x16.gif" />
<telerik:RadMenuItem Text="Post Results" ImageUrl="../App_Themes/GOLD Main/ToolBar/edit_16x16.gif" />
<telerik:RadMenuItem Text="Item Inspection Report">
<Items>
<telerik:RadMenuItem Text="Details" ImageUrl="../App_Themes/GOLD Main/ToolBar/print_16x16.gif" />
<telerik:RadMenuItem Text="Summary" ImageUrl="../App_Themes/GOLD Main/ToolBar/print_16x16.gif" />
</Items>
</telerik:RadMenuItem>
</Items>
</telerik:RadContextMenu>
on Databind i declare my pop up menu and bind to the first two.
RadMenu
RadPopupMenu = (RadMenu)e.Item.Cells[0].FindControl("OptionsRadContextMenu");
RadPopupMenu.Items[0].NavigateUrl =
String.Format("javascript:OpenCopyItem({0},{1},{2},{3},{4})", woid, detailid, wonumber, locationid, wolinenumber);
RadPopupMenu.Items[1].NavigateUrl =
String.Format("javascript:OpenPostResults({0},{1})", woid, detailid, wonumber, locationid);
my question is how can i get to the "sub-menus" or the item that has other items? once i try to reference past [1] to say "RadPopupMenu.Items[2]" - i get an error. any help is appreciated.
thanks again
rik