Grid client refresh/rebind???

11 posts, 1 answers
  1. John Fetherolf
    John Fetherolf avatar
    30 posts
    Member since:
    Sep 2006

    Posted 15 Feb 2008 Link to this post

    I have a grid that when you click an item it brings up a popup window that allows the user to edit the data for the item in the grid.  I have a callback function on the base page that I want to refresh the grid when the user hits the "save" button on the popup.  I have tried just about everything I can think of to get the grid to refresh.  How can I force the grid to update/rebind from the JavaScript callback? 

    For some back ground I did do an AjaxManager.AjaxRequest();  I am getting to the NeedDataSource event on the server, but the grid is not refreshing when the AjaxRequest is finished.  How do you get this to work with Prometheus RadGrid?

    Thanks,
    Kevin

    Code behind:
            #region Event: RadAjaxMgr_AjaxRequest  
            /// <summary>  
            /// Ajax manager request event delegate handler.  
            /// </summary>  
            /// <param name="sender">Event sender.</param>  
            /// <param name="e">Event arguments.</param>   
            private void RadAjaxMgr_AjaxRequest(object sender, AjaxRequestEventArgs e) {  
                if (e.Arguement == "RefreshGrid")  
                   gridItems.Rebind();                  //  Gets here no problem  
            }
            #endregion  
     

    JavaScript:
    var winMgrName = "ctl00_ContentPlaceHolder1_RadWindowManager1";  
    var gridUniqueID = "ctl00$ContentPlaceHolder1$gridItems";  
    var gridClientID = "ctl00_ContentPlaceHolder1_gridItems";  
    var ajaxManagerClientID = "ctl00_RadAjaxManager1";  
    var winEditOrder = "winEditDepartment";  
     
    //  Popup department editor page/window.  
    function EditDepartment(deptID) {  
        OpenRadWindow(winMgrName, "EditDepartment.aspx?i=" + deptID, winEditOrder);  
    }  
     
    //  Callback handler from the window's OK button handler.  
    function DepartmentChangeCallback() {  
        var ajaxMgr = $find(ajaxManagerClientID);  
        var gridItems = $find(gridClientID);  
          
        ajaxMgr.AjaxRequest("RefreshGrid");  
    }  
     
  2. Answer
    Sebastian
    Admin
    Sebastian avatar
    9934 posts

    Posted 18 Feb 2008 Link to this post

    Hello Kevin,

    Have you set the RadAjaxManager as initiator of the ajax request and the grid instance as updated control through the ajax manager settings? This should ensure that the grid content will be refreshed when you invoke the ajaxRequest(eventArgs) method and call Rebind() from the AjaxRequest handler.

    Furthermore, verify that the underlying record in the source is updated with the new entries to see the updated content in the grid table.

    Best regards,
    Stephen
    the Telerik team

    Instantly find answers to your questions at the new Telerik Support Center
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. John Fetherolf
    John Fetherolf avatar
    30 posts
    Member since:
    Sep 2006

    Posted 18 Feb 2008 Link to this post

    Thanks for the help on this Steven.  I had tried what you suggested and it hadn't worked.

    One detail I didn't include in the original message was that I am using master pages.  Your response did prompt me to try something that did work however.  Originally I had a RadAjaxManager (ID="RadAjaxManager1") on the master page and a RadAjaxManagerProxy (ID="RadAjaxManager1") on the content page so my initial attempt with this in the content page:

                <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">  
                    <UpdatedControls> 
                        <telerik:AjaxUpdatedControl ControlID="gridItems" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    </UpdatedControls> 
                </telerik:AjaxSetting> 
     

    ... was apparently getting confused.  However, when I changed the ID on the manager page to "RadAjaxManagerMaster" and changed the content page to look like this:

                <telerik:AjaxSetting AjaxControlID="RadAjaxManagerMaster">  
                    <UpdatedControls> 
                        <telerik:AjaxUpdatedControl ControlID="gridItems" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    </UpdatedControls> 
                </telerik:AjaxSetting> 
     

    ... everything works like a champ.

    Thanks for the help again,
    Kevin
  5. rcbarth
    rcbarth avatar
    13 posts
    Member since:
    Dec 2006

    Posted 05 Mar 2008 Link to this post

    Why isn't there just a simple .rebind() client method on the grid that takes care of all this stuff for us?
  6. Yavor
    Admin
    Yavor avatar
    11 posts

    Posted 06 Mar 2008 Link to this post

    Hello Robert,

    Indeed, we will consider adding this option for one of the upcoming versions of the control. For the time being, I hope the proposed workaround is suitable for you.

    All the best,
    Yavor
    the Telerik team

    Instantly find answers to your questions at the new Telerik Support Center
  7. HHH
    HHH avatar
    42 posts
    Member since:
    Feb 2008

    Posted 05 May 2008 Link to this post

    Hi, Did you find solution for this.

    i have same problem

    in ajaxrequest i m trying to bind radgrid and its not getting refreshed
    and with out ajax it works fine

    thanks
  8. Prangadj
    Prangadj avatar
    174 posts
    Member since:
    Jan 2008

    Posted 05 May 2008 Link to this post

    I do not see any problem here - if you make ajax request with ajax manager and call the Rebind() method of the grid it should rebind the data in it. Debug your code to see whether every part of your code is executed, this can help you find the cause for the problem.

    Prangadj
  9. HHH
    HHH avatar
    42 posts
    Member since:
    Feb 2008

    Posted 05 May 2008 Link to this post

    Thanks Prangadj for the  repsond.

    Ajax_request is getting call but its not refreshing the grid..
    I have also done  radgrid.rebind() but it didnt work out..

    telerik

    :RadAjaxManager ID="RadAjaxManager1" runat="server" >

    <AjaxSettings>

    <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">

    <UpdatedControls>

    <telerik:AjaxUpdatedControl ControlID="Rad_Grid" />

    </UpdatedControls>

    </telerik:AjaxSetting>

    </AjaxSettings>

    </

    telerik:RadAjaxManager>

    .CS file

    Public Sub RadAjaxManager1_AjaxRequest(ByVal sender As Object, ByVal e As Telerik.Web.UI.AjaxRequestEventArgs) Handles RadAjaxManager1.AjaxRequest

    Rad_Grid.DataSource =

    DirectCast(Session("temp"), DataTable)

    Rad_Grid.Rebind()

    End Sub




    any help with this..thanks
  10. HHH
    HHH avatar
    42 posts
    Member since:
    Feb 2008

    Posted 05 May 2008 Link to this post

    Hi I found the solution..

    My Script Tag was on Head Tag and i put in Body and it works
    i dont know y ..

  11. altaf
    altaf avatar
    50 posts
    Member since:
    Jun 2008

    Posted 16 Sep 2008 Link to this post

    i am using the 2008.2.723.20 version.$0$0$0$0i am also facing the same problem.$0$0$0$0$0$0$0$0i have an image in the grid.$0$0grid is rebinding and needdatasource event is also working fine.$0$0$0$0$0but image in the grid is not changing but when i refresh the whole page then$0$0image is display.$0$0$0$0$0can any body help me urgently.$0$0
  12. David Simmonds
    David Simmonds avatar
    56 posts
    Member since:
    Mar 2010

    Posted 25 May 2010 Link to this post

    I am having a similar problem. I have a column in the grid that is a GridTemplateColumn. In it is an ImageButton. When the grid binds, I handle the ItemDataBound event. I get the ImageButton from the grid row using Item.FindControl. If the value of one of the columns is 0 I set the ImageUrl and ToolTipto indicate an Add functionality, otherwise I set the ImageUrl and ToolTip to indicate a Delete functionality. I also set the ImageButton Attributes["onclick"] to a specific javascript method; one for add, one for delete. Each javascript method does some work and then calls the ajaxRequest method of the AjaxManager; each with a different argument. This all works perfectly when the grid first initializes. If I click the ImageButton everything works including the call to AjaxRequest. In the handler I do a database add or delete and then call Rebind for the grid. ItemDataBound event is called but the grid ImageButton does not change the image. I have included the code below. If someone can tell me how to cause the ImageButton to visually change the image I would appreciate it.

    <%@ Page Title="" Language="C#" MasterPageFile="~/NestedMasterPage2.master" AutoEventWireup="true" CodeBehind="ContractorsList.aspx.cs" Inherits="CharityCheck.Admin.ContractorsList" %> 
    <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %> 
    <%@ Register tagprefix="igtxt" namespace="Infragistics.WebUI.WebDataInput" Assembly="Infragistics35.WebUI.WebDataInput.v10.1, Version=10.1.20101.2039, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" %> 
    <%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %> 
     
    <%@ Register tagprefix="igtbl" namespace="Infragistics.WebUI.UltraWebGrid" Assembly="Infragistics35.WebUI.UltraWebGrid.v10.1, Version=10.1.20101.2039, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" %> 
     
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">  
        <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">  
            <script type="text/javascript" id="igClientScript1">  
                var RadGrid1;  
     
                function GetGridObject(sender, eventArgs) {  
                    RadGrid1 = sender;  
                }  
                function webImageButtonSearch_Click(oButton, oEvent) {  
                    RadGrid1.get_masterTableView().rebind();  
                }  
                function ShowCommissionsForm(employeeID, rowIndex) {  
                    var rowControl = RadGrid1.get_masterTableView().get_dataItems()[rowIndex].get_element();  
                    RadGrid1.get_masterTableView().selectItem(rowControl, true);  
     
                    window.radopen("EmployeeCommissions.aspx?EmployeeID=" + employeeID, "Commissions");  
                    return false;  
                }  
                function RemoveFromCampaign(id, rowIndex) {  
                    var rowControl = RadGrid1.get_masterTableView().get_dataItems()[rowIndex].get_element();  
                    RadGrid1.get_masterTableView().selectItem(rowControl, true);  
                    var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>");  
                    ajaxManager.ajaxRequest("Command=RemoveFromCampaign");  
                    return false;  
                }  
                function OnClientClose(oWnd, args) {  
                    //get the transferred arguments  
                    var arg = args.get_argument();  
                    if (arg) {  
                        var argument = "Command=AddToCampaign|" +  
                                       "BaseSalary=" + arg.BaseSalary + "|" +  
                                       "NewCommissionRate=" + arg.NewCommissionRate + "|" +  
                                       "TapCommissionRate=" + arg.TapCommissionRate + "|" +  
                                       "AnnualMembershipFees=" + arg.AnnualMembershipFees + "|" +  
                                       "RequestedCharitableReports=" + arg.RequestedCharitableReports + "|" +  
                                       "RequestedBusinessProfiles=" + arg.RequestedBusinessProfiles + "|" +  
                                       "EnhancedAdvertising=" + arg.EnhancedAdvertising + "|" +  
                                       "ExclusiveAdvertising=" + arg.ExclusiveAdvertising + "|" +  
                                       "SponsoredCharitableReports=" + arg.SponsoredCharitableReports;  
                        var ajaxManager = $find("<%= RadAjaxManager1.ClientID %>");  
                        ajaxManager.ajaxRequest(argument);  
                        return false;  
                    }  
                }  
            </script> 
        </telerik:RadCodeBlock> 
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default" /> 
        <table style="width: 100%">  
            <tr> 
                <td style="width: 126px">  
                    <telerik:radcombobox ID="RadComboBoxStatus" runat="server" width="90px" 
                        Skin="Vista"   
                        EmptyMessage="All Status">  
                        <Items> 
                            <telerik:RadComboBoxItem runat="server" Selected="True" Text="All Status"   
                                Value="All Status" /> 
                            <telerik:RadComboBoxItem runat="server" Text="Active" Value="Active" /> 
                            <telerik:RadComboBoxItem runat="server" Text="Inactive" Value="Inactive" /> 
                        </Items> 
                    </telerik:radcombobox> 
                </td> 
                <td style="width: 236px">  
                    <telerik:radcombobox ID="RadComboBoxCity" runat="server" width="200px" 
                        MarkFirstMatch="True" EnableLoadOnDemand="True"   
                        OnItemsRequested="RadComboBoxCity_ItemsRequested" Skin="Vista"   
                        EmptyMessage="All Cities" EnableVirtualScrolling="True" 
                        ShowMoreResultsBox="True" Sort="Ascending" AppendDataBoundItems="True">  
                        <Items> 
                            <telerik:RadComboBoxItem runat="server" Selected="True" Text="All Cities"   
                                Value="All Cities" /> 
                        </Items> 
                    </telerik:radcombobox> 
                </td> 
                <td> 
                    <igtxt:WebImageButton ID="webImageButtonSearch" runat="server"   
                        ImageDirectory="~/Images"    
                        Text="Search" CausesValidation="False" TabIndex="3"   
                        ToolTip="Click this button to start the search." AutoSubmit="False" > 
                        <ClientSideEvents Click="webImageButtonSearch_Click" /> 
                        <Appearance> 
                            <Image Url="../Images/Search-16x16.png" /> 
                        </Appearance> 
                    </igtxt:WebImageButton> 
                </td> 
                <td width="150px">  
                </td> 
                <td> 
                    &nbsp;</td> 
            </tr> 
        </table> 
        <table class="style1005">  
            <tr> 
                <td> 
                    <asp:Image ID="Image1" runat="server" ImageUrl="~/Images/Plus-16x16.png" /> 
                    &nbsp;<asp:Label ID="Label8" runat="server" Text="Indicates person is NOT assigned to the campaign."></asp:Label> 
                </td> 
            </tr> 
            <tr> 
                <td> 
                    <asp:Image ID="Image2" runat="server" ImageUrl="~/Images/Delete2-16x16.png" /> 
                    &nbsp;<asp:Label ID="Label3" runat="server" Text="Indicates the person IS assigned to the campaign."></asp:Label> 
                </td> 
            </tr> 
        </table> 
        <br /> 
        <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True"   
            DataSourceID="LinqDataSource1" Skin="Office2007" GridLines="None"   
            AutoGenerateColumns="False"   
            onitemdatabound="RadGrid1_ItemDataBound" Width="100%" > 
            <MasterTableView DataSourceID="LinqDataSource1">  
                <Columns> 
                    <telerik:GridBoundColumn DataField="Name" DefaultInsertValue=""   
                        HeaderText="Worker Name" SortExpression="Name" UniqueName="Name">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="Status" DefaultInsertValue=""   
                        HeaderText="Status" SortExpression="Status"   
                        UniqueName="Status">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="City" DefaultInsertValue="" 
                        HeaderText="City" SortExpression="City"   
                        UniqueName="City">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="Type" DefaultInsertValue=""   
                        HeaderText="Type" SortExpression="Type" UniqueName="Type">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridTemplateColumn DefaultInsertValue="" UniqueName="AddRemove" > 
                        <ItemTemplate> 
                            <asp:ImageButton ID="ImageButtonAddRemove" runat="server" 
                                             ImageUrl="~/Images/Plus-16x16.png"   
                                             ToolTip="Add this person to the campaign" /> 
                        </ItemTemplate> 
                        <HeaderStyle Width="20px" /> 
                    </telerik:GridTemplateColumn> 
                    <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="AddRemove1" Visible="false" 
                        ImageUrl="~/Images/Plus-16x16.png" Text="Add this person to the campaign" UniqueName="AddRemove">  
                        <HeaderStyle Width="20px" /> 
                        <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> 
                    </telerik:GridButtonColumn> 
                    <telerik:GridBoundColumn DataField="ID" DefaultInsertValue="" Visible="false" 
                        HeaderText="ID" ReadOnly="True" SortExpression="ID"   
                        UniqueName="ID" DataType="System.Int32">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="CampaignID" DataType="System.Int32" Visible="false" 
                        DefaultInsertValue="0" HeaderText="CampaignID" SortExpression="CampaignID"   
                        UniqueName="CampaignID" EmptyDataText="0">  
                    </telerik:GridBoundColumn> 
                </Columns> 
            </MasterTableView> 
            <ClientSettings>    
                <Selecting AllowRowSelect="true" />    
                <ClientEvents OnGridCreated="GetGridObject"></ClientEvents> 
            </ClientSettings>    
            <PagerStyle Position="TopAndBottom" /> 
        </telerik:RadGrid> 
        <telerik:RadWindowManager ID="RadWindowManager1" runat="server"   
            Behaviors="Move" VisibleStatusbar="False" Skin="Vista">  
            <Windows> 
                <telerik:RadWindow ID="Commissions" runat="server" Title="Employee Commissions" Height="350px" 
                    OnClientClose="OnClientClose" 
                    Width="400px" Left="150px" ReloadOnShow="true" ShowContentDuringLoad="false" Modal="true" /> 
            </Windows> 
        </telerik:RadWindowManager> 
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">  
            <AjaxSettings> 
                <telerik:AjaxSetting AjaxControlID="webImageButtonSearch">  
                    <UpdatedControls> 
                        <telerik:AjaxUpdatedControl ControlID="webImageButtonSearch" /> 
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    </UpdatedControls> 
                </telerik:AjaxSetting> 
                <telerik:AjaxSetting AjaxControlID="RadGrid1">  
                    <UpdatedControls> 
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    </UpdatedControls> 
                </telerik:AjaxSetting> 
            </AjaxSettings> 
        </telerik:RadAjaxManager> 
        <asp:LinqDataSource ID="LinqDataSource1" runat="server"   
            AutoPage="False" ContextTypeName="CharityCheck.CharityCheckEntities"   
            onselecting="LinqDataSource1_Selecting"   
            TableName="CompanySet">  
        </asp:LinqDataSource> 
        <asp:SqlDataSource ID="SqlDataSourceUsers" runat="server"   
            ConnectionString="<%$ ConnectionStrings:CharityCheckConnectionString %>"   
            SelectCommand="SELECT Employees.Name, Employees.Status, Cities.Name AS City, Employees.ID, Employees.Type, CampaignEmployee.CampaignID FROM Employees LEFT OUTER JOIN CampaignEmployee ON Employees.ID = CampaignEmployee.EmployeeID LEFT OUTER JOIN Cities ON Employees.City = Cities.Name WHERE (Employees.Status LIKE @StatusParam) AND (Cities.Name LIKE @CityParam) ORDER BY Employees.Name">  
            <SelectParameters> 
                <asp:Parameter Name="StatusParam" /> 
                <asp:Parameter Name="CityParam" /> 
            </SelectParameters> 
        </asp:SqlDataSource> 
    </asp:Content> 
     
    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Web;  
    using System.Web.UI;  
    using System.Web.UI.WebControls;  
    using System.Data;  
    using System.Data.SqlClient;  
    using System.Configuration;  
    using System.ComponentModel;  
    using System.Diagnostics;  
    using Infragistics.WebUI.UltraWebGrid;  
    using Infragistics.WebUI.WebDataInput;  
    using Telerik.Web.UI;  
     
    namespace CharityCheck.Admin  
    {  
        public partial class ContractorsList : System.Web.UI.Page  
        {
            #region Properties  
            [Browsable(false)]  
            public int CampaignID  
            {  
                get 
                {  
                    object obj2 = this.ViewState["CampaignID"];  
                    return (obj2 != null) ? (int)obj2 : 0;  
                }  
                set 
                {  
                    this.ViewState["CampaignID"] = value;  
                }  
            }
            #endregion  
     
            protected void Page_Load(object sender, EventArgs e)  
            {  
                if (!IsPostBack)  
                {  
                    CampaignID = Convert.ToInt32(Session["Contractors:CampaignID"]);  
                }  
            }  
     
            protected void RadComboBoxCity_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)  
            {  
                const int ItemsPerRequest = 10;  
     
                DataTable data = GetData(e.Text);  
     
                int itemOffset = e.NumberOfItems;  
                int endOffset = Math.Min(itemOffset + ItemsPerRequest, data.Rows.Count);  
                e.EndOfItems = endOffset == data.Rows.Count;  
     
                for (int i = itemOffset; i < endOffset; i++)  
                {  
                    RadComboBoxCity.Items.Add(new RadComboBoxItem(data.Rows[i]["Name"].ToString(), data.Rows[i]["Name"].ToString()));  
                }  
     
                e.Message = GetStatusMessage(endOffset, data.Rows.Count);  
            }  
     
            private static DataTable GetData(string text)  
            {  
                String strQuery = String.Format("SELECT Name,ID FROM Cities " +  
                                                "WHERE Name LIKE '{0}%' " +  
                                                "ORDER BY Name",  
                                                text);  
     
                SqlDataAdapter adapter = new SqlDataAdapter(strQuery,  
                    ConfigurationManager.ConnectionStrings["CharityCheckConnectionString"].ConnectionString);  
     
                DataTable data = new DataTable();  
                adapter.Fill(data);  
     
                return data;  
            }  
     
            private static string GetStatusMessage(int offset, int total)  
            {  
                if (total <= 0)  
                    return "No matches";  
     
                return String.Format("Items <b>1</b>-<b>{0}</b> out of <b>{1}</b>", offset, total);  
            }  
     
            protected void webImageButtonSearch_Click(object sender, Infragistics.WebUI.WebDataInput.ButtonEventArgs e)  
            {  
                Search(RadComboBoxCity.Text, RadComboBoxStatus.Text);  
            }  
     
            protected void Search(string strCity, string strStatus)  
            {  
                SqlDataSourceUsers.SelectParameters["CityParam"].DefaultValue = (strCity == "All Cities") ? "%" : strCity;  
                SqlDataSourceUsers.SelectParameters["StatusParam"].DefaultValue = (strStatus == "All Status") ? "%" : strStatus;  
                RadGrid1.DataBind();  
            }  
     
            protected void RadGrid1_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)  
            {  
                if (e.Item is GridDataItem)  
                {  
                    ImageButton button = e.CommandSource as ImageButton;  
                    GridDataItem item = RadGrid1.Items[e.Item.ItemIndex];  
                    if (button != null)  
                    {  
                        int nID = Convert.ToInt32(item["ID"].Text);  
     
                        CharityCheckEntities entities = new CharityCheckEntities();  
                        CampaignEmployee intersect = null;  
                        switch (e.CommandName)  
                        {  
                            case "Add":  
                                intersect = new CampaignEmployee();  
                                intersect.CampaignID = CampaignID;  
                                intersect.EmployeeID = nID;  
                                entities.AddToCampaignEmployeeSet(intersect);  
     
                                button.CommandName = "Remove";  
                                button.ImageUrl = "/Images/Delete2-16x16.png";  
                                item.Selected = true;  
                                break;  
                            case "Remove":  
                                intersect = (from i in entities.CampaignEmployeeSet  
                                             where i.CampaignID == CampaignID &&  
                                                   i.EmployeeID == nID  
                                             select i).FirstOrDefault();  
                                entities.DeleteObject(intersect);  
     
                                button.CommandName = "Add";  
                                button.ImageUrl = "/Images/Plus-16x16.png";  
                                item.Selected = true;  
                                break;  
                        }  
                        entities.SaveChanges();  
                    }  
                }  
            }  
     
            protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)  
            {  
                if (e.Item is GridDataItem)  
                {  
                    GridDataItem item = e.Item as GridDataItem;  
                    if (item == null)  
                        return;  
     
                    ImageButton button = (ImageButton)e.Item.FindControl("ImageButtonAddRemove");  
                    //ImageButton button1 = item["AddRemove1"].Controls[0] as ImageButton;  
                    if (Convert.ToInt32(item["CampaignID"].Text) == 0)  
                    {  
                        //button1.CommandName = "Add";  
                        //button1.ToolTip = "Add this person to the campaign";  
                        //button1.ImageUrl = "/Images/Plus-16x16.png";  
                        button.CommandName = "Add";  
                        button.ToolTip = "Add this person to the campaign";  
                        button.ImageUrl = "/Images/Plus-16x16.png";  
                        button.Attributes["onclick"] = String.Format("return ShowCommissionsForm('{0}','{1}');",  
                                                                        item["ID"].Text, e.Item.ItemIndex);  
                    }  
                    else 
                    {  
                        //button1.CommandName = "Remove";  
                        //button1.ToolTip = "Remove this person from the campaign";  
                        //button1.ImageUrl = "/Images/Delete2-16x16.png";  
                        button.CommandName = "Remove";  
                        button.ToolTip = "Remove this person from the campaign";  
                        button.ImageUrl = "/Images/Delete2-16x16.png";  
                        button.Attributes["onclick"] = String.Format("return RemoveFromCampaign('{0}','{1}');",  
                                                                        item["ID"].Text, e.Item.ItemIndex);  
                    }  
                }  
            }  
     
            protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)  
            {  
                String strCity = RadComboBoxCity.SelectedValue;  
                String strStatus = RadComboBoxStatus.SelectedValue;  
     
                CharityCheckEntities entities = new CharityCheckEntities();  
                var data = from employee in entities.EmployeeSet  
                           let campaignemployee = (from ce in entities.CampaignEmployeeSet  
                                                   where ce.EmployeeID == employee.ID && ce.CampaignID == CampaignID  
                                                   select ce).FirstOrDefault()  
                           let cities = entities.CitiesSet.Where(c => c.Name == employee.City).FirstOrDefault()  
                           where (strCity == "All Cities" ? true : employee.City.StartsWith(strCity)) &&  
                                 (strStatus == "All Status" ? true : (employee.Status == strStatus)) &&  
                                 employee.Name != "admin" 
                           orderby employee.Name  
                           select new 
                           {  
                               employee.ID,  
                               employee.Name,  
                               employee.Status,  
                               employee.Type,  
                               City = (cities == null) ? String.Empty : cities.Name,  
                               CampaignID = (campaignemployee == null) ? 0 : campaignemployee.CampaignID  
                           };  
                e.Result = data;  
                e.Arguments.TotalRowCount = data.Count();  
            }  
     
            public void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)  
            {  
                GridDataItem item = RadGrid1.SelectedItems[0] as GridDataItem;  
                if (item != null)  
                {  
                    CharityCheckEntities entities = new CharityCheckEntities();  
                    CampaignEmployee intersect = null;  
     
                    ImageButton button = (ImageButton)item.FindControl("ImageButtonAddRemove");  
                    int nID = Convert.ToInt32(item["ID"].Text);  
                    String[] args = e.Argument.Split('|');  
                    switch (args[0].Split('=')[1])  
                    {  
                        case "AddToCampaign":  
                            intersect = new CampaignEmployee();  
                            intersect.CampaignID = CampaignID;  
                            intersect.EmployeeID = nID;  
                            entities.AddToCampaignEmployeeSet(intersect);  
                            for (int n = 1; n != args.Length; n++)  
                            {  
                                String[] values = args[n].Split('=');  
                                String strField = values[0];  
                                String strValue = values[1];  
                                switch (strField)  
                                {  
                                    case "BaseSalary":  
                                        intersect.BaseSalary = Convert.ToDecimal(strValue);  
                                        break;  
                                    case "NewCommissionRate":  
                                        intersect.NewCommissionRate = Convert.ToSingle(strValue);  
                                        break;  
                                    case "TapCommissionRate":  
                                        intersect.TapCommissionRate = Convert.ToSingle(strValue);  
                                        break;  
                                    case "AnnualMembershipFees":  
                                        intersect.AnnualMembershipFees = Convert.ToSingle(strValue);  
                                        break;  
                                    case "RequestedCharitableReports":  
                                        intersect.RequestedCharitableReports = Convert.ToSingle(strValue);  
                                        break;  
                                    case "RequestedBusinessProfiles":  
                                        intersect.RequestedBusinessProfiles = Convert.ToSingle(strValue);  
                                        break;  
                                    case "EnhancedAdvertising":  
                                        intersect.EnhancedAdvertising = Convert.ToSingle(strValue);  
                                        break;  
                                    case "ExclusiveAdvertising":  
                                        intersect.ExclusiveAdvertising = Convert.ToSingle(strValue);  
                                        break;  
                                    case "SponsoredCharitableReports":  
                                        intersect.SponsoredCharitableReports = Convert.ToSingle(strValue);  
                                        break;  
                                }  
                            }  
                            entities.AddToCampaignEmployeeSet(intersect);  
                            break;  
                        case "RemoveFromCampaign":  
                            intersect = (from i in entities.CampaignEmployeeSet  
                                            where i.CampaignID == CampaignID &&  
                                                i.EmployeeID == nID  
                                            select i).FirstOrDefault();  
                            if (intersect != null)  
                                entities.DeleteObject(intersect);  
                            break;  
                    }  
                    entities.SaveChanges();  
                    RadGrid1.Rebind();  
                }  
            }  
        }  
    }  
     
Back to Top
UI for ASP.NET Ajax is Ready for VS 2017