using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;using System.Web.Services;namespace SMTX.Common.Web { public partial class gridtest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) initGrid(); } public void initGrid() { Forms.BL.EntityClasses.ViewEntity objView = Forms.BL.MyCode.ViewFactory.fetch(18); RadGrid1.AllowFilteringByColumn = true; GridBoundColumn objCol = new GridBoundColumn { AllowFiltering = true, DataField = "Field1", HeaderText = "Field1", DataType = Type.GetType("System.String"), FilterTemplate = new FilterTemplateCombo() }; RadGrid1.Columns.Add(objCol); objCol = new GridBoundColumn { AllowFiltering = false, DataField = "Field2", HeaderText = "Field2", DataType = Type.GetType("System.String") }; RadGrid1.Columns.Add(objCol); ScriptManager.RegisterStartupScript(this, this.GetType(), "CallGetView", @"setTimeout(function() {radGrid_Init();} , 1000);", true); } [WebMethod] public static List<dataContainer> GetData(List<GridFilterExpression> p_lstFilterExpressions) { List<dataContainer> lstData = getDataForGrid(p_lstFilterExpressions); return lstData; } public static List<dataContainer> getDataForGrid(List<GridFilterExpression> p_lstFilterExpressions) { List<dataContainer> lstData = dataContainer.getTestData(); List<String> lstFilterValues = null; if (p_lstFilterExpressions.Count > 0) lstFilterValues = p_lstFilterExpressions[0].FieldValue.Split(new []{"||"}, StringSplitOptions.RemoveEmptyEntries).ToList(); if (lstFilterValues == null) return lstData; else return lstData.Where(r => lstFilterValues.Contains(r.Field1)).ToList(); } } public class dataContainer { public Object Field1 { get; set; } public Object Field2 { get; set; } public static List<dataContainer> getTestData() { List<dataContainer> lstToRetrun = new List<dataContainer>(); lstToRetrun.Add(new dataContainer { Field1 = "Name1", Field2 = "Name1field2" }); lstToRetrun.Add(new dataContainer { Field1 = "Name2", Field2 = "Name2field2" }); return lstToRetrun; } } public class FilterTemplateCombo : ITemplate { object m_objDataSource; public FilterTemplateCombo() { m_objDataSource = new[] { "Name1", "Name2" }; } public void InstantiateIn(Control objContainer) { RadComboBox objCombobox = new RadComboBox(); objContainer.Controls.Add(objCombobox); objCombobox.DataSource = m_objDataSource; objCombobox.DataBind(); objCombobox.OnClientItemChecked = "RadGrid_ComboBoxMultiFilterCommand"; objCombobox.CheckBoxes = true; foreach (RadComboBoxItem objItem in objCombobox.Items) objItem.Checked = true; } }}<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="gridtest.aspx.cs" Inherits="SMTX.Common.Web.gridtest" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><html><body> <form id="form1" runat="server"> <ajax:ToolkitScriptManager ID="MyToolkitScriptManager" runat="server" EnablePageMethods="true" /> <telerik:RadGrid ID="RadGrid1" runat="server"> <ClientSettings> <ClientEvents OnCommand="RadGrid_Command" /> </ClientSettings> </telerik:RadGrid> <telerik:RadScriptBlock runat="server"> <script type="text/javascript"> function radGrid_Init() { var tableView = $find("RadGrid1").get_masterTableView(); PageMethods.GetData(tableView.get_filterExpressions().toList(), RadGrid_Update); } function RadGrid_Command(sender, args) { args.set_cancel(true); var filterExpressions = sender.get_masterTableView().get_filterExpressions(); PageMethods.GetData(filterExpressions.toList(), RadGrid_Update); } function RadGrid_ComboBoxMultiFilterCommand(sender, args) { var gridTableView = sender.get_parent().get_parent().get_masterTableView(); var arr_objItems = sender.get_checkedItems(); if (arr_objItems.length > 0) { var strData = ""; for (var i = 0; i < arr_objItems.length; i++) strData += "||" + arr_objItems[i].get_value(); gridTableView.filter("Field1", strData, Telerik.Web.UI.GridFilterFunction.Custom); } else { gridTableView.filter("Field1", "", Telerik.Web.UI.GridFilterFunction.NoFilter); } } function RadGrid_Update(result) { var tableView = $find("RadGrid1").get_masterTableView(); tableView.set_dataSource(result); tableView.dataBind(); } </script> </telerik:RadScriptBlock> </form></body></html><NoRecordsTemplate> <div style="text-align: center; width: 100%;"> <asp:Label Text="<%$Resources:RadGridLib,grid_client_master_no_records %>" ID="LabelNoDoc" runat="server" /> </div></NoRecordsTemplate><telerik:RadScheduler ID="RadScheduler1" runat="server" TimelineView-NumberOfSlots="5" Skin="Web20" EnableEmbeddedSkins="true" EnableEmbeddedBaseStylesheet="false" DataStartField="Start" DataEndField="End" DataSubjectField="Subject" DataKeyField="ID" EnableDescriptionField="true" GroupingDirection="Vertical" StartInsertingInAdvancedForm="True" AdvancedForm-Modal="False" OnAppointmentDelete="RadScheduler1_AppointmentDelete" OnAppointmentInsert="RadScheduler1_AppointmentInsert" OnAppointmentUpdate="RadScheduler1_AppointmentUpdate" OnFormCreating="RadScheduler1_FormCreating" OnFormCreated="RadScheduler1_FormCreated" OnAppointmentDataBound="RadScheduler1_AppointmentDataBound" OnDataBound="RadScheduler1_OnDataBound" OnNavigationComplete="RadScheduler1_NavigationComplete"> <WeekView DayStartTime="06:00:00" DayEndTime="23:59:00" WorkDayStartTime="08:00:00" WorkDayEndTime="18:00:00" /> <DayView DayStartTime="06:00:00" DayEndTime="23:59:00" WorkDayStartTime="08:00:00" WorkDayEndTime="18:00:00" /> <MonthView VisibleAppointmentsPerDay="20" AdaptiveRowHeight="true" /> <TimelineView SlotDuration="12:00:00" NumberOfSlots="10" TimeLabelSpan="2" ColumnHeaderDateFormat="dddd, MMMM d" /> <ResourceStyles> <telerik:ResourceStyleMapping Type="Category" Text="Out of Office" ApplyCssClass="rsCategoryViolet" /> <telerik:ResourceStyleMapping Type="Category" Text="After Hours" ApplyCssClass="rsCategoryRed" /> <telerik:ResourceStyleMapping Type="Category" Text="Projects" ApplyCssClass="rsCategoryDarkGreen" /> <telerik:ResourceStyleMapping Type="Category" Text="MACs" ApplyCssClass="rsCategoryGreen" /> <telerik:ResourceStyleMapping Type="Category" Text="VNMS" ApplyCssClass="rsCategoryDarkBlue" /> <telerik:ResourceStyleMapping Type="Category" Text="IPT/Engineering" ApplyCssClass="rsCategoryDarkRed" /> <telerik:ResourceStyleMapping Type="Category" Text="Other" ApplyCssClass="rsCategoryOrange" /> <telerik:ResourceStyleMapping Type="Category" Text="Remote Day" ApplyCssClass="rsCategoryYellow" /> <telerik:ResourceStyleMapping Type="Category" Text="Region Coverage" ApplyCssClass="rsCategoryPink" /> </ResourceStyles> <TimeSlotContextMenuSettings EnableDefault="true" /> <AppointmentContextMenuSettings EnableDefault="true" /> </telerik:RadScheduler>protected override void OnPreRender(EventArgs e) { RadScheduler1.OverflowBehavior = OverflowBehavior.Expand; base.OnPreRender(e); }
<
telerik:RadListBox ID="rlbTag" runat="server" AutoPostBack="false" OnClientItemDoubleClicked="DeleteTags()" Width="250" EnableEmbeddedSkins="true" Height="80px" AllowAutomaticUpdates="true">
<ItemTemplate>
<table width="100%">
<tr>
<td align="left" ><asp:Label ID="lblTags" Text='<%# DataBinder.Eval(Container, "Text") %>' runat="server"></asp:Label></td>
<td align="right"><asp:ImageButton ImageUrl="~/images/Delete.gif" ID="btnDelete" Text="Delete" OnClientClick="return removeItem(event)" runat="server"/></td>
<%
--<asp:CheckBox id="cbUsers" runat="server" OnClick="checkboxReportClick(event);" Text='<%# DataBinder.Eval(Container, "Text") %>' />--%>
</tr>
</table>
</ItemTemplate>
</telerik:RadListBox>
</td>
Following is the implementation of removeItem method which will be triggered when user click on delete button in List Box item template
function
removeItem(e)
{
var RdListBox=$find("<%= rlbTag.ClientID %>");
var item = RdListBox.get_selectedItem();
RdListBox._selectedIndex = 0;
RdListBox.trackChanges();
RdListBox.get_items().remove(item);
RdListBox.commitChanges();
}
When first time user clicks delete button to remove an item, selected item is gettiung null. Seconmd time it gets deleted from the list.
Can anyone help me to acheive remove functionality on cleint side?