This is a migrated thread and some comments may be shown as answers.

Remove Check All Check is not working as expected...

4 Answers 278 Views
ComboBox
This is a migrated thread and some comments may be shown as answers.
Wired_Nerve
Top achievements
Rank 2
Wired_Nerve asked on 19 Mar 2013, 03:30 PM
PLEASE SEE ATTACHED IMAGE for screen captures...

I have a bit of code that is called to remove all checked items in various radcomboboxes with checkboxes...

My code works great to remove their selections, but if they use the check all option and then opt to clear all selections (a button event) all the checked items are unchecked EXCEPT for the check all...

function clearCheckedItems(combo) {
            for (var i = 0; i < combo.get_items().get_count(); i++) {
                combo.trackChanges();
                combo.get_items().getItem(i).set_checked(false);
// The following code I was hoping to use to clear the checkall box...
                //var element = combo.get_dropDownElement();
                //var checkAll = $telerik.$(element).find(".rcbCheckAllItemsCheckBox");
                //      So what do I need to do at this point to clear the check all checkbox...??
 
                combo.commitChanges();
            }
        }

4 Answers, 1 is accepted

Sort by
0
Wired_Nerve
Top achievements
Rank 2
answered on 21 Mar 2013, 09:24 PM
I am still looking for a way to remove the check all check from the radcombo via an Refresh button on the page...

0
Boyan Dimitrov
Telerik team
answered on 22 Mar 2013, 02:28 PM
Hello,

Please find attached a sample project that implements very similar scenario - clicking on the submit button will clear all RadComboBox items including the "Check All" item. Here you may watch a video that demonstrates the application behavior at my side. Please could you clarify what exactly is different in your scenario  in order to replicate that issue locally and be more helpful.


Regards,
Boyan Dimitrov
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
Wired_Nerve
Top achievements
Rank 2
answered on 22 Mar 2013, 03:45 PM
I tried using the exact approach you have and it did not work either...
User Story:
1. In a RadComboBox (with a empty message Please select: ) are several checkbox options, plus a check all...
----- The page has several Radcomboboxes

2. The user selects Check All
3. Performs a filter
4. Decides to clear their filters and clicks a image button linked to a javascript to clear all controls on the page of selected or enter values.

The radComboBoxes clear all the selected items EXCEPT the Check All box is stil selected.

Below is the entire source for the page...

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/Nav.Master" AutoEventWireup="true"
    CodeBehind="ReconcileAdministrative.aspx.cs" Inherits="TIPWebIT.AuditManagement.ReconcileAdministrative" %>
 
<%@ MasterType TypeName="TIPWebCommon.MasterPages.Nav" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <link href="../App_Themes/TIPWeb/FormSets.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery-1.8.2.min.js") %>"></script>
    <script type="text/javascript">
        //=====================================================
        //==                    GLOBAL VARIALBES
        //==---------------------------------------------------
        //===   The global variables are used by the ajax
        //==    method and other helper javascript methods
        //=====================================================
        var Action = '';
        var Tag = '';
        var AuditDetailUID = '';
        var AuditDetailRoomUID = '';
        var comboAction = '';
        //=======================
        //=====================================================
        //==        JQUERY DOCUMENT READY EVENTS
        //-----------------------------------------------------
        //===   Use this section for any code you need to run
        //===   any time the page loads for the first time
        //===   or any event that needs to fire code via jquery
        //=====================================================
        $(document).ready(function () {
            // put all your jQuery goodness in here.
            var isPost = $('head').data('isPostback');
            if (isPost != "true") {
                // Prepare the page on first load to hide controls
                $("#PriceBetween").hide();
                $("#LastScanDateBetween").hide();
                $("#AuditDateAfterBetween").hide();
 
            }
        });
 
 
 
 
 
        //================================================
        //==    AJAX MAANGER CLIENT CODE
        //================================================
        //==    Register events in the page_load
        //==    on the server side
        //==  A great read:
        //==----------------------------------------------
        //==    Using this technique is much easier than
        //==    figuring out the correct ajax settings
        //==    ecpecially if you don't want to wrap the
        //==    entire page in a update panel.  Which I
        //==    don't want to do so I can maintain
        //==    client side control state via javascript.
        //==   
        //================================================
        function ucOnResponseEnd(sender, eventArgs) {
 
            if (eventArgs._eventTarget.indexOf("ImageButtonGo") > 0) {
                ajax_toggleItem();
            }
        }
 
 
        //====================================================
        //===       RADWINDOW MODAL EVENTS
        //====================================================
        //==    I used this method instead of the fake modal
        //==    because it is vastly cleaner on the markup side
        //==    Plus the benefits of having it fully cross
        //==    browser tested by telerik and all the various
        //==    client side events they offer...
        //====================================================
 
        //====================================================
        //==    Save Changes and reset UI by reloading grid
        //====================================================
        function CloseModal() {
 
            postAction();
 
            //====================================================
            //===   Close the RadWindow
            //====================================================
            var oWnd = window.$find("<%= RadWindowActionNotes.ClientID %>");
            oWnd.close();
            $("#ModalNotes").val('');
            //====================================================
            //===   Rebind the RadGrid
            //===       We can not rebind if we decide to use javascript to hide the combo...
            //===       Then we can actually update the ROW's info to reflect the actual change, might
            //===       be easier to rebind.
            //====================================================
            //            var masterTable = $find("<%= RadGridAudits.ClientID %>").get_masterTableView();
            //            masterTable.rebind();
 
        }
 
        function CancelModal() {
            //====================================================
            //===   Clear the RadWindows Notes field of values
            //====================================================
            $("#ModalNotes").val('');
 
            //====================================================
            //===   Close the RadWindow
            //====================================================
            var oWnd = $find("<%= RadWindowActionNotes.ClientID %>");
            oWnd.close();
 
            //====================================================
            //===   Rebind the RadGrid
            //====================================================
            var masterTable = $find("<%= RadGridAudits.ClientID %>").get_masterTableView();
            masterTable.rebind();
 
        }
 
        function getControl(rowIndex, comboAction) {
            var masterTable = $find("<%=RadGridAudits.ClientID%>").get_masterTableView();
            // var datePicker = masterTable.get_dataItems()[0].findControl('rtpTime'); // Here 0 represents the index of crow in editmode
            //  var selectedItems = MasterTable.get_selectedItems();
            // var LabelTagAuditState = masterTable.get_dataItems()[rowIndex].findControl('LabelTagAuditState');
 
            var selectedRows = masterTable.get_selectedItems();
            for (var i = 0; i < selectedRows.length; i++) {
                var row = selectedRows[i];
                masterTable.get_dataItems()[rowIndex].findElement('clientActionLabel').innerText = comboAction;
                masterTable.get_dataItems()[rowIndex].findElement('clientActionLabel').style.display = "block";
 
 
                //                var cell = MasterTable.getCellByColumnUniqueName(row, "CategoryID");
                //                var myControl = row.findControl('LabelTagAuditState');
                //                var imageState = masterTable.get_dataItems()[rowIndex].findElement('ImageState').src = '';
                //                masterTable.get_dataItems()[rowIndex].findElement('ImageState').style.display = "none";
 
                //                masterTable.get_dataItems()[rowIndex].findElement('LabelTagAuditState').innerText = '';
 
 
            }
 
 
        }
 
        function select(rowIndex, comboAction) {
            var grid = $find("<%=RadGridAudits.ClientID %>");
            var MasterTable = grid.get_masterTableView();
            MasterTable.get_dataItems()[rowIndex].set_selected(true);
            // Get edit controls on this selected row to reflect changes
            getControl(rowIndex, comboAction);
 
        }
 
        function deselect() {
            var masterTable = $find("<%= RadGridAudits.ClientID %>").get_masterTableView();
            var row = masterTable.get_dataItems();
            for (var i = 0; i < row.length; i++) {
                masterTable.get_dataItems()[i].set_selected(false);
            }
        }
 
        //============================================================
        //==    A generic function that is used by the search type
        //==    combo boxes to show or hide between ranges
        //============================================================
        function BetweenChanged(sender, eventArgs) {
            // Determine who the sender is..
            //Reveal the between section
 
 
            var betweenCombo = sender.get_id();
            var optionSelected = eventArgs.get_item().get_value();
 
            if (betweenCombo == "RadComboBoxPriceSearchType") {
                if (optionSelected != "between") {
                    $("#PriceBetween").hide(); // addClass("DisplayNone");
                    //Clear the value
                    window.$find("<%= RadNumericTextBoxPriceBetween.ClientID %>").clear();
                    return false;
                }
                else if (optionSelected == "between") {
                    $("#PriceBetween").show(); // removeClass("DisplayNone");
                    return false;
                }
            }
 
            //============================================================
            //===   Hide / Show
            //============================================================
 
            if (betweenCombo == "RadComboBoxLastScanDateSearchType") {
                if (optionSelected != "between") {
                    $("#LastScanDateBetween").hide(); // addClass("DisplayNone");
                    //Clear a selection
                    window.$find("<%= RadDatePickerLastScanDateBetween.ClientID %>").clear();
                    return false;
                }
                else if (optionSelected == "between") {
                    $("#LastScanDateBetween").show(); // removeClass("DisplayNone");
                    return false;
                }
            }
 
 
            if (betweenCombo == "RadComboBoxAuditDateAfterSearchType") {
                if (optionSelected != "between") {
                    $("#AuditDateAfterBetween").hide(); // addClass("DisplayNone");
                    //Clear a selection
                    window.$find("<%= RadDatePickerAuditDateAfterBetween.ClientID %>").clear();
                    return false;
                }
                else if (optionSelected == "between") {
                    $("#AuditDateAfterBetween").show(); // removeClass("DisplayNone");
                    return false;
                }
            }
 
 
            return false;
 
        }
 
 
        function onSelectedIndexChanged(sender, eventArgs) {
 
            //=====================================================
            //===   Get the row index this event occured on
            //=====================================================
 
            // First deselect any rows
            deselect();
            // Now Select the active row
            var rowIndex = sender.get_element().parentNode.parentNode.rowIndex - 1;
 
 
 
 
            //====================================================
            //===   Fires when a user changes a radcombo box in
            //===   the RadGrid.
            //====================================================
            var selectedItem = eventArgs.get_item();
            select(rowIndex, selectedItem.get_text());
 
 
            comboAction = sender.get_id();
 
            sender.set_visible(false);
            //            var uniqueID = sender._uniqueId;
            //            $('#' + uniqueID +'').hide();
 
            //====================================================
            //===   Get the needed values and parse
            //====================================================
            Action = selectedItem.get_text();
            //====================================================
            //===   Get AuditDetailUIDAndTag and split by |
            //====================================================
            var AuditSplit = selectedItem.get_value().split("|");
 
            AuditDetailUID = AuditSplit[0];
            AuditDetailRoomUID = AuditSplit[1];
            Tag = AuditSplit[2];
 
            //====================================================
            //===   Show the local RadWidow to the user
            //====================================================
            var oWnd = $find("<%= RadWindowActionNotes.ClientID %>");
            oWnd.set_title(Action);
            //  oWnd.center();
            //  oWnd.setActive();
            //  oWnd.set_Modal(true);
            if (Action == "No Action") {
                $("#ModalNotes").val("No Action");
                postAction();
                return false;
            }
            oWnd.show();
 
            return false;
 
        }
 
 
        function postAction() {
            //====================================================
            //===   This event fires when the user saves the
            //===   message for a selected action (radgrid combo)
            //===
            //===   This is a jquery ajax call to a server side
            //===   web method.
            //====================================================
 
 
            //====================================================
            //===   Get the user entered message
            //====================================================
            var message = $("#ModalNotes").val();
 
            //====================================================
            //===   Ensure the document is fully loaded before
            //===   firing off the jquery ajax command
            //====================================================
 
            $(document).ready(function () { // Begin Document Ready
 
                //====================================================
                //===   The baseUrl variable is defined in the
                //===   NavMaster page source, not code behind
                //====================================================
                var url = baseUrl + "AuditManagement/ReconcileAdministrative.aspx/ChangeTagStatus";
 
                //====================================================
                //===   This ajax call post the data to the server side
                //===   static web method.
                //===   The parameters MUST match the webmethod exactly
                //====================================================
 
                var parameters = new Object();
                parameters.action = Action;
                parameters.tag = Tag;
                parameters.auditDetailUID = AuditDetailUID;
                parameters.auditDetailRoomUID = AuditDetailRoomUID;
                parameters.message = message;
 
 
                //====================================================
                //===   Use the JSON.Stringify to seriallize the
                //===   the object in this format:
                //===       {"Action":"Stolen","Tag":"T9222","AuditDetailUID":"3","AuditDetailRoomUID":"990","Message":"asdfasdfsdf"}
                //===   Great read:
                //=====================================================
 
 
                $.ajax({
                    type: "POST",
                    url: url,
                    data: JSON.stringify(parameters),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        if (msg.d.indexOf("Error") > 0) {
                            alert(removeHTMLTags(msg.d));
                            var masterTable = window.$find("<%= RadGridAudits.ClientID %>").get_masterTableView();
                            masterTable.rebind();
 
                        }
 
                    }
                });
            });          // End Document Ready
 
        }
 
 
        function removeHTMLTags(html) {
            var strTagStrippedText = html.replace(/<\/?[^>]+(>|$)/g, "");
            return strTagStrippedText;
 
        }
 
 
        //====================================================
        //===   Range Code
        //====================================================
        function ShowLastScanDateRange() {
            var lastScanDateCombo = $('#LastScanDateCombo').attr('checked');
            if (lastScanDateCombo) {
                alert("Checked");
            }
 
        }
 
        //====================================================
        //===   Search Box code
        //====================================================
 
 
        //====================================================
        //===   This function is called afte the ImageButtonGo
        //==    javascript click event occurs and the grid has
        //==    finished it's post and update events.
        //==      The primary reason I am collapsing the panel
        //==    control here is to give the grid time to execute
        //==    it's dat request and have the update panel
        //==    spinner graphic look better instead of not
        //==    having the spinner on top of the grid as it
        //==    gets it's data. 
        //====================================================
        function ajax_toggleItem() {
            var panelBar = $find("<%=AuditFilterPanel.ClientID%>");
            if (panelBar != null) {
                panelBar.findItemByText("Search Inventory Audits Filters").collapse();
            }
 
            //            if (item) {
            //                if (!item.get_expanded()) {
            //                    item.expand();
            //                }
            //                else {
            //                    item.collapse();
            //                }
            //            }
            //            else {
            //                alert("Item with text '" + text + "' not found.");
            //            }
        }
 
        //====================================================
        //===   Search Box code
        //====================================================
 
 
 
        function ValidateFilters() {
            var count = 0;
            var isValid = false;
 
 
            var RadComboTagAuditState = $find("<%= RadComboTagAuditState.ClientID %>");
            count = RadComboTagAuditState.get_checkedItems();
            if (count == 0) {
                isValid = false;
            } else {
 
                return true;
            }
 
 
 
            var RadDatePickerAuditDateAfter = $find("<%= RadDatePickerAuditDateAfter.ClientID %>");
 
            if (isValid == false && RadDatePickerAuditDateAfter.isEmpty()) {
                isValid = false;
            }
            else {
 
                return true;
            }
 
            var RadComboRoomAuditStatus = $find("<%= RadComboRoomAuditStatus.ClientID %>");
            count = RadComboRoomAuditStatus.get_checkedItems();
            if (isValid == false && count == 0) {
                isValid = false;
            }
            else {
 
                return true;
            }
 
            var RadDatePickerLastScanDate = $find("<%= RadDatePickerLastScanDate.ClientID %>");
            if (isValid == false && RadDatePickerLastScanDate.isEmpty()) {
                isValid = false;
            }
            else {
 
                return true;
            }
 
            var RadComboSiteName = $find("<%=RadComboSiteName.ClientID %>");
            count = RadComboSiteName.get_checkedItems();
            if (isValid == false && count == 0) {
                isValid = false;
            }
            else {
 
                return true;
            }
 
            var RadComboExpectedLocationType = $find("<%= RadComboExpectedLocationType.ClientID %>");
            count = RadComboExpectedLocationType.get_checkedItems();
            if (isValid == false && count == 0) {
                isValid = false;
            }
            else {
 
                return true;
            }
 
            var RadComboHardwareType = $find("<%= RadComboHardwareType.ClientID %>");
            count = RadComboHardwareType.get_checkedItems();
            if (isValid == false && count == 0) {
                isValid = false;
            } else {
 
                isValid = true;
            }
 
            var RadNumericTextBoxPrice = $find("<%= RadNumericTextBoxPrice.ClientID %>");
            if (isValid == false && RadNumericTextBoxPrice.isEmpty()) {
                isValid = false;
            } else {
 
                isValid = true;
            }
 
            if (isValid == false) {
                alert("At least one filter must be used.");
 
                return false;
            }
 
            return true;
        }
 
        function clearCheckedItems(combo) {
 
            for (var i = 0; i < combo.get_items().get_count(); i++) {
                combo.get_items().getItem(i).set_checked(false);
            }
        }
 
        function ClearFilters() {
 
           // location.reload(false);  //TODO: Remove once telerik answers query....
 
 
 
            var RadComboTagAuditState = $find("<%= RadComboTagAuditState.ClientID %>");
 
            for (var i = 0; i < RadComboTagAuditState.get_items().get_count(); i++) {
                RadComboTagAuditState.get_items().getItem(i).set_checked(false);
            }
 
 
           // clearCheckedItems(RadComboTagAuditState);
 
 
            var RadComboExpectedLocationType = $find("<%= RadComboExpectedLocationType.ClientID %>");
          //  RadComboExpectedLocationType.clearSelection();
              clearCheckedItems(RadComboExpectedLocationType);
             
 
            var RadComboRoomAuditStatus = $find("<%= RadComboRoomAuditStatus.ClientID %>");
            RadComboRoomAuditStatus.clearSelection();
            clearCheckedItems(RadComboRoomAuditStatus);
 
            var RadComboHardwareType = $find("<%= RadComboHardwareType.ClientID %>");
            RadComboHardwareType.clearSelection();
            clearCheckedItems(RadComboHardwareType);
 
            var RadComboSiteName = $find("<%=RadComboSiteName.ClientID %>");
            RadComboSiteName.clearSelection();
            clearCheckedItems(RadComboSiteName);
 
            //=========================
            //== Between Hide Show
            //==========================
            var RadDatePickerAuditDateAfter = $find("<%= RadDatePickerAuditDateAfter.ClientID %>");
            RadDatePickerAuditDateAfter.clear();
            var RadDatePickerAuditDateAfterBetween = $find("<%= RadDatePickerAuditDateAfterBetween.ClientID %>");
            RadDatePickerAuditDateAfterBetween.clear();
            //$("#AuditDateAfterBetween").hide();
 
            //Reset combo to toEqual
            var RadComboBoxAuditDateAfterSearchType = $find("<%= RadComboBoxAuditDateAfterSearchType.ClientID %>");
            RadComboBoxAuditDateAfterSearchType.findItemByValue("equalto").select();
 
 
            var RadDatePickerLastScanDate = $find("<%= RadDatePickerLastScanDate.ClientID %>");
            RadDatePickerLastScanDate.clear();
            var RadDatePickerLastScanDateBetween = $find("<%= RadDatePickerLastScanDateBetween.ClientID %>");
            RadDatePickerLastScanDateBetween.clear();
            //$("#LastScanDateBetween").hide();
 
            //Reset combo to toEqual
            var RadComboBoxLastScanDateSearchType = $find("<%= RadComboBoxLastScanDateSearchType.ClientID %>");
            RadComboBoxLastScanDateSearchType.findItemByValue("equalto").select();
 
 
            var RadNumericTextBoxPrice = $find("<%= RadNumericTextBoxPrice.ClientID %>");
            RadNumericTextBoxPrice.clear();
            var RadNumericTextBoxPriceBetween = $find("<%= RadNumericTextBoxPriceBetween.ClientID %>");
            RadNumericTextBoxPriceBetween.clear();
            // $("#PriceBetween").hide();
            //Reset combo to toEqual
            var RadComboBoxPriceSearchType = $find("<%= RadComboBoxPriceSearchType.ClientID %>");
            RadComboBoxPriceSearchType.findItemByValue("equalto").select();
 
 
 
 
            //HideGrid();
 
        }
 
 
        function HideGrid() {
            var radGrid = $find("<%= RadGridAudits.ClientID%>");
            radGrid.set_visible(false);
 
        }
 
 
        function clearRadDatePickerAuditDateAfter() {
            var datepicker = $find("<%= RadDatePickerAuditDateAfter.ClientID %>");
            datepicker.clear();
        }
        function clearRadDatePickerAuditDateAfterBetween() {
            var datepicker = $find("<%= RadDatePickerAuditDateAfterBetween.ClientID %>");
            datepicker.clear();
        }
        function clearRadDatePickerLastScanDate() {
            var datepicker = $find("<%= RadDatePickerLastScanDate.ClientID %>");
            datepicker.clear();
        }
        function clearRadDatePickerLastScanDateBetween() {
            var datepicker = $find("<%= RadDatePickerLastScanDateBetween.ClientID %>");
            datepicker.clear();
        }
 
 
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <input type="hidden" id="clientSideIsPostBack" runat="server" clientidmode="Static"
        name="clientSideIsPostBack" />
    <telerik:RadWindow runat="server" ID="RadWindowActionNotes" VisibleOnPageLoad="False"
        Title="Action Notes" Skin="Default" Modal="True" Behaviors="Move, Reload">
        <ContentTemplate>
            <style type="text/css">
                /* Allows radComboBox dropdowns to expand horizontally
   rather than use a scrollbar */
                @media \0screen
                {
                    .rcbAutoWidth .rcbList
                    {
                        min-width: 142px;
                    }
                }
            </style>
            <div style="margin: 10px;">
                <div style="text-align: left;">
                    Status notes:
                </div>
                <div style="text-align: center; height: 400px">
                    <asp:TextBox runat="server" Width="100%" Height="100%" ClientIDMode="Static" ID="ModalNotes"
                        MaxLength="500" Columns="25" TextMode="MultiLine" CausesValidation="False"></asp:TextBox>
                </div>
                <div id="SaveActions" style="margin-top: 25px;">
                    <asp:ImageButton runat="server" ClientIDMode="Static" ID="ModalOk" ToolTip="Save notes"
                        ImageUrl="../App_Themes/TIPWeb/Images/Save.gif" OnClientClick="CloseModal(); return false;"
                        CausesValidation="False" /> 
                    <asp:ImageButton runat="server" ClientIDMode="Static" ID="ImageButton1" ToolTip="Cancel notes"
                        ImageUrl="../App_Themes/TIPWeb/Images/Cancel.gif" OnClientClick="CancelModal(); return false;" />
                </div>
            </div>
        </ContentTemplate>
    </telerik:RadWindow>
    <telerik:RadPanelBar runat="server" ID="AuditFilterPanel" ClientIDMode="Static" Width="100%">
        <Items>
            <telerik:RadPanelItem runat="server" Text="Search Inventory Audits Filters" Expanded="True"
                ImageUrl="~/App_Themes/TIPWEB/Images/filter_16.gif">
                <ContentTemplate>
                    <asp:Panel class="expand" runat="server" DefaultButton="ImageButtonGo">
                        <!-- Filters Begin -->
                        <table>
                            <tr>
                                <!-- Left Column -->
                                <td>
                                    <table>
                                        <tr>
                                            <td class="childCaption">
                                                <label>
                                                    Tag Audit State:</label>
                                            </td>
                                            <td class="childValue">
                                                <telerik:RadComboBox runat="server" ID="RadComboTagAuditState" CheckBoxes="true"
                                                    EnableCheckAllItemsCheckBox="true" Skin="Default" EmptyMessage=" Please select:"
                                                    NoWrap="True">
                                                </telerik:RadComboBox>
                                            </td>
                                        </tr>
                                    </table>
                                    <table>
                                        <tr>
                                            <td class="childCaption">
                                                <label>
                                                    Expected Location Type:</label>
                                            </td>
                                            <td class="childValue">
                                                <telerik:RadComboBox runat="server" ID="RadComboExpectedLocationType" CheckBoxes="true"
                                                    NoWrap="True" EnableCheckAllItemsCheckBox="true" EmptyMessage=" Please select:">
                                                </telerik:RadComboBox>
                                            </td>
                                        </tr>
                                    </table>
                                    <table>
                                        <tr>
                                            <td class="childCaption">
                                                <label>
                                                    Room Audit Status:</label>
                                            </td>
                                            <td class="childValue">
                                                <telerik:RadComboBox runat="server" ID="RadComboRoomAuditStatus" CheckBoxes="true"
                                                    NoWrap="True" EnableCheckAllItemsCheckBox="true" EmptyMessage=" Please select:">
                                                </telerik:RadComboBox>
                                            </td>
                                        </tr>
                                    </table>
                                    <table>
                                        <tr>
                                            <td class="childCaption">
                                                <label>
                                                    Hardware Type:</label>
                                            </td>
                                            <td class="childValue">
                                                <telerik:RadComboBox runat="server" ID="RadComboHardwareType" CheckBoxes="true" EnableCheckAllItemsCheckBox="true"
                                                    NoWrap="True" DataValueField="statusID" EmptyMessage=" Please select:" DropDownWidth="200px"
                                                    MaxHeight="450px">
                                                </telerik:RadComboBox>
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                                <!-- Right Column -->
                                <td>
                                    <table>
                                        <tr>
                                            <td class="childCaption">
                                                <label>
                                                    Site Name:</label>
                                            </td>
                                            <td class="childValue">
                                                <telerik:RadComboBox runat="server" ID="RadComboSiteName" CheckBoxes="true" EnableCheckAllItemsCheckBox="true"
                                                    DropDownWidth="250px" EmptyMessage=" Please select:" MaxHeight="450px">
                                                </telerik:RadComboBox>
                                            </td>
                                        </tr>
                                    </table>
                                    <table>
                                        <tr>
                                            <td class="childCaption">
                                                <label>
                                                    Audit Date After:</label>
                                            </td>
                                            <td class="childValue">
                                                <telerik:RadComboBox runat="server" ID="RadComboBoxAuditDateAfterSearchType" Width="95px"
                                                    ClientIDMode="Static" OnClientSelectedIndexChanged="BetweenChanged">
                                                    <Items>
                                                        <telerik:RadComboBoxItem runat="server" Text="Equal To" Value="equalto" />
                                                        <telerik:RadComboBoxItem runat="server" Text="Greater Than" Value="greaterthan" />
                                                        <telerik:RadComboBoxItem runat="server" Text="Less Than" Value="lessthan" />
                                                        <telerik:RadComboBoxItem runat="server" Text="Between" Value="between" />
                                                    </Items>
                                                </telerik:RadComboBox>
                                                  
                                                <telerik:RadDatePicker ID="RadDatePickerAuditDateAfter" runat="server" EnableTyping="False"
                                                    FocusedDate="2012-01-01" MinDate="2010-01-01" TabIndex="9" Culture="en-US" Enabled="True">
                                                    <Calendar ID="Calendar1" runat="server" UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False"
                                                        ViewSelectorText="x">
                                                    </Calendar>
                                                    <DateInput ID="DateInput1" runat="server" DateFormat="M/d/yyyy" DisplayDateFormat="M/d/yyyy"
                                                        ReadOnly="True" TabIndex="9">
                                                    </DateInput>
                                                    <DatePopupButton ImageUrl="" HoverImageUrl="" TabIndex="9"></DatePopupButton>
                                                </telerik:RadDatePicker>
                                                <!-- Clear Selected Date -->
                                                <input id="ImageAuditDateAfter" style="vertical-align: middle;" type="image" value="Clear"
                                                    src="../App_Themes/TIPWeb/Images/Reset_16.gif" onclick="clearRadDatePickerAuditDateAfter(); return false;" />
                                                <span runat="server" clientidmode="Static" id="AuditDateAfterBetween"><span style="height: 25px;
                                                    vertical-align: middle"> AND </span>
                                                    <telerik:RadDatePicker ID="RadDatePickerAuditDateAfterBetween" runat="server" EnableTyping="False"
                                                        FocusedDate="2012-01-01" MinDate="2010-01-01" TabIndex="9" Culture="en-US" Enabled="True">
                                                        <Calendar ID="Calendar4" runat="server" UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False"
                                                            ViewSelectorText="x">
                                                        </Calendar>
                                                        <DateInput ID="DateInput4" runat="server" DateFormat="M/d/yyyy" DisplayDateFormat="M/d/yyyy"
                                                            ReadOnly="True" TabIndex="9">
                                                        </DateInput>
                                                        <DatePopupButton ImageUrl="" HoverImageUrl="" TabIndex="9"></DatePopupButton>
                                                    </telerik:RadDatePicker>
                                                    <input id="ImageResetAuditDateAfterBetween" style="vertical-align: middle;" type="image"
                                                        value="Clear" src="../App_Themes/TIPWeb/Images/Reset_16.gif" onclick="clearRadDatePickerAuditDateAfterBetween(); return false;" />
                                                </span>
                                            </td>
                                        </tr>
                                    </table>
                                    <table>
                                        <tr>
                                            <td class="childCaption">
                                                <label>
                                                    Last Scan Date:</label>
                                            </td>
                                            <td class="childValue">
                                                <telerik:RadComboBox runat="server" ID="RadComboBoxLastScanDateSearchType" Width="95px"
                                                    ClientIDMode="Static" OnClientSelectedIndexChanged="BetweenChanged">
                                                    <Items>
                                                        <telerik:RadComboBoxItem runat="server" Text="Equal To" Value="equalto" />
                                                        <telerik:RadComboBoxItem runat="server" Text="Greater Than" Value="greaterthan" />
                                                        <telerik:RadComboBoxItem runat="server" Text="Less Than" Value="lessthan" />
                                                        <telerik:RadComboBoxItem runat="server" Text="Between" Value="between" />
                                                    </Items>
                                                </telerik:RadComboBox>
                                                 <telerik:RadDatePicker ID="RadDatePickerLastScanDate" runat="server" EnableTyping="False"
                                                    FocusedDate="2012-01-01" MinDate="2010-01-01" TabIndex="9" CssClass="PreferenceCalendar"
                                                    Culture="en-US" Enabled="True">
                                                    <Calendar ID="Calendar2" runat="server" UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False"
                                                        ViewSelectorText="x">
                                                    </Calendar>
                                                    <DateInput ID="DateInput2" runat="server" DateFormat="M/d/yyyy" DisplayDateFormat="M/d/yyyy"
                                                        ReadOnly="True" TabIndex="9">
                                                    </DateInput>
                                                    <DatePopupButton ImageUrl="" HoverImageUrl="" TabIndex="9"></DatePopupButton>
                                                </telerik:RadDatePicker>
                                                <input id="ImageLastScanDate" style="vertical-align: middle;" type="image" value="Clear"
                                                    src="../App_Themes/TIPWeb/Images/Reset_16.gif" onclick="clearRadDatePickerLastScanDate(); return false;" />
                                                <span runat="server" clientidmode="Static" id="LastScanDateBetween"><span style="height: 25px;
                                                    vertical-align: middle"> AND </span>
                                                    <telerik:RadDatePicker ID="RadDatePickerLastScanDateBetween" runat="server" EnableTyping="False"
                                                        FocusedDate="2012-01-01" MinDate="2010-01-01" TabIndex="9" CssClass="PreferenceCalendar"
                                                        Culture="en-US" Enabled="True">
                                                        <Calendar ID="Calendar3" runat="server" UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False"
                                                            ViewSelectorText="x">
                                                        </Calendar>
                                                        <DateInput ID="DateInput3" runat="server" DateFormat="M/d/yyyy" DisplayDateFormat="M/d/yyyy"
                                                            ReadOnly="True" TabIndex="9">
                                                        </DateInput>
                                                        <DatePopupButton ImageUrl="" HoverImageUrl="" TabIndex="9"></DatePopupButton>
                                                    </telerik:RadDatePicker>
                                                    <input id="ImageLastScanDateBetween" style="vertical-align: middle;" type="image"
                                                        value="Clear" src="../App_Themes/TIPWeb/Images/Reset_16.gif" onclick="clearRadDatePickerLastScanDateBetween(); return false;" />
                                                </span>
                                            </td>
                                        </tr>
                                    </table>
                                    <table>
                                        <tr>
                                            <td class="childCaption">
                                                <label>
                                                    Price:</label>
                                            </td>
                                            <td class="childValue" style="white-space: nowrap;">
                                                <telerik:RadComboBox runat="server" ID="RadComboBoxPriceSearchType" Width="95px"
                                                    ClientIDMode="Static" OnClientSelectedIndexChanged="BetweenChanged">
                                                    <Items>
                                                        <telerik:RadComboBoxItem runat="server" Text="Equal To" Value="equalto" />
                                                        <telerik:RadComboBoxItem runat="server" Text="Greater Than" Value="greaterthan" />
                                                        <telerik:RadComboBoxItem runat="server" Text="Less Than" Value="lessthan" />
                                                        <telerik:RadComboBoxItem runat="server" Text="Between" Value="between" />
                                                    </Items>
                                                </telerik:RadComboBox>
                                                 <telerik:RadNumericTextBox ID="RadNumericTextBoxPrice" runat="server" AllowOutOfRangeAutoCorrect="False"
                                                    EmptyMessage="Enter a dollar amount." MaxValue="999999999" MinValue="0" Type="Currency"
                                                    ValidationGroup="Second" Width="140px">
                                                </telerik:RadNumericTextBox>
                                                <span runat="server" clientidmode="Static" id="PriceBetween"><span style="height: 20px;
                                                    vertical-align: middle"> AND </span>
                                                    <telerik:RadNumericTextBox ID="RadNumericTextBoxPriceBetween" runat="server" AllowOutOfRangeAutoCorrect="False"
                                                        EmptyMessage="Enter a dollar amount." EnableTheming="True" MaxValue="999999999"
                                                        MinValue="0" Type="Currency">
                                                    </telerik:RadNumericTextBox>
                                                </span>
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <!-- Filters End -->
                                    <div class="formSetActionFooter">
                                        <asp:ImageButton ID="ImageButtonReset" ImageUrl="~/App_Themes/TIPWEB/Images/Reset.gif"
                                            runat="server" AlternateText="Reset" ToolTip="Reset filters" Visible="True" TabIndex="17"
                                            OnClientClick="ClearFilters(); return false;"></asp:ImageButton
                                        <asp:ImageButton ID="ImageButtonGo" ImageUrl="~/App_Themes/TIPWEB/Images/go.gif"
                                            runat="server" AlternateText="Apply Filter(s)" ToolTip="Apply Filter(s)" Visible="True"
                                            TabIndex="17" OnClick="ImageButtonGo_Click" OnClientClick="return ValidateFilters();">
                                        </asp:ImageButton>
                                    </div>
                                </td>
                            </tr>
                        </table>
                    </asp:Panel>
                </ContentTemplate>
            </telerik:RadPanelItem>
        </Items>
    </telerik:RadPanelBar>
    <%--<telerik:RadAjaxPanel runat="server" LoadingPanelID="RadAjaxLoadingPanel1" HorizontalAlign="NotSet">--%>
    <telerik:RadGrid ID="RadGridAudits" runat="server" AllowPaging="True" AllowSorting="True"
        GridLines="None" AutoGenerateColumns="False" OnItemCreated="RadGridAudits_ItemCreated"
        OnItemDataBound="RadGridAudits_ItemDataBound" OnNeedDataSource="RadGridAudits_NeedDataSource"
        Visible="True" CellSpacing="0">
        <%--  <ClientSettings>
                <ClientEvents OnRowClick="ChildRowClick" />
            </ClientSettings>--%>
        <ClientSettings EnablePostBackOnRowClick="False">
            <Selecting EnableDragToSelectRows="False" AllowRowSelect="False" />
        </ClientSettings>
        <MasterTableView DataKeyNames="Tag, auditDetailUID, auditDetailRoomUID">
            <NoRecordsTemplate>
                <label>
                    Results Found</label>
            </NoRecordsTemplate>
            <CommandItemSettings ExportToPdfText="Export to PDF" />
            <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
            </RowIndicatorColumn>
            <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
            </ExpandCollapseColumn>
            <Columns>
                <telerik:GridTemplateColumn DataField="TagAuditState" HeaderText="Audit State" SortExpression="TagAuditState"
                    UniqueName="TagAuditState">
                    <ItemTemplate>
                        <asp:Image ID="ImageState" runat="server" />
                        <asp:Label ID="LabelTagAuditState" runat="server" SkinID="EditForms" Text='<%# Eval("TagAuditState") %>' />
                        <asp:HiddenField runat="server" ID="hiddenFieldActionTakenUID" Value='<%# Eval("ActionTakenUID") %>' />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn DataField="Tag" HeaderText="Tag" SortExpression="Tag"
                    UniqueName="Tag">
                    <ItemTemplate>
                        <asp:Label ID="ArchivedLabel" runat="server" Text='<%# Eval("Archived") %>' Visible="false" />
                        <asp:LinkButton ID="TagLabel" runat="server" PostBackUrl="" SkinID="EditForms" Text='<%# Eval("Tag") %>' />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn DataField="ProductName" HeaderText="Product Name" SortExpression="ProductName"
                    UniqueName="ProductName">
                    <ItemTemplate>
                        <asp:Label ID="ProductNameLabel" runat="server" SkinID="EditForms" Text='<%# Eval("ProductName") %>' />
                          
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridDateTimeColumn AutoPostBackOnFilter="True" DataField="LastScanDate"
                    DataFormatString="{0:MM/dd/yyyy}" FilterControlWidth="120px" HeaderText="Last Scan Date"
                    PickerType="DatePicker" ShowFilterIcon="false" SortExpression="LastScanDate"
                    UniqueName="LastScanDate">
                </telerik:GridDateTimeColumn>
                <telerik:GridTemplateColumn DataField="ExpectedLocation" HeaderText="Expected Location"
                    SortExpression="ExpectedLocation" UniqueName="ExpectedLocation">
                    <ItemTemplate>
                        <asp:Label ID="ExpectedLocationLabel" runat="server" SkinID="EditForms" Text='<%# Eval("ExpectedLocation") %>' />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn DataField="AuditLocation" HeaderText="Audit Location"
                    SortExpression="AuditLocation" UniqueName="AuditLocation">
                    <ItemTemplate>
                        <asp:Label ID="AuditLocationLabel" runat="server" SkinID="EditForms" Text='<%# Eval("AuditLocation") %>' />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridDateTimeColumn AutoPostBackOnFilter="True" DataField="AuditScanDate"
                    DataFormatString="{0:MM/dd/yyyy}" FilterControlWidth="120px" HeaderText="Audit Date"
                    PickerType="DatePicker" ShowFilterIcon="false" SortExpression="AuditScanDate"
                    UniqueName="AuditScanDate" FilterControlAltText="=">
                </telerik:GridDateTimeColumn>
                <telerik:GridTemplateColumn AllowFiltering="false" HeaderText="Actions" UniqueName="Actions"
                    Visible="true">
                    <ItemTemplate>
                        <asp:Label runat="server" ID="clientActionLabel"></asp:Label>
                        <asp:Label ID="ActionLabel" runat="server" Text="" Visible="false" />
                        <telerik:RadToolTip ID="RadToolTipNotes" runat="server" RelativeTo="Element" TargetControlID="NotesImage"
                            Title="" Text='<%# string.Format("<br />{0}: ", Eval("Notes")) %>' AutoCloseDelay="3000"
                            Position="MiddleRight" HideDelay="300" ShowDelay="10" Animation="Slide" HideEvent="ManualClose"
                            ToolTip="" Width="200px">
                        </telerik:RadToolTip>
                        <asp:Image ID="NotesImage" runat="server" ImageUrl='<%# string.Format("~/App_Themes/{0}/Images/Notes.gif", Page.Theme) %>'
                            AlternateText='' ImageAlign="Middle" Visible="false" />
                        <telerik:RadComboBox ID="RadComboBoxActions" runat="server" AutoPostBack="False"
                            EmptyMessage="Select Action" OnClientSelectedIndexChanged="onSelectedIndexChanged"
                            Width="155px" CausesValidation="False" />
                    </ItemTemplate>
                    <ItemStyle Width="155px" />
                </telerik:GridTemplateColumn>
            </Columns>
            <EditFormSettings>
                <EditColumn FilterControlAltText="Filter EditCommandColumn column">
                </EditColumn>
            </EditFormSettings>
        </MasterTableView>
        <FilterMenu EnableImageSprites="False">
        </FilterMenu>
        <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">
        </HeaderContextMenu>
    </telerik:RadGrid>
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
    <telerik:RadAjaxManagerProxy runat="server" ID="RadAjaxManagerProxy1">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="ImageButtonGo">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGridAudits" LoadingPanelID="RadAjaxLoadingPanel1">
                    </telerik:AjaxUpdatedControl>
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="RadGridAudits">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGridAudits" LoadingPanelID="RadAjaxLoadingPanel1">
                    </telerik:AjaxUpdatedControl>
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManagerProxy>
</asp:Content>


CODE CODE

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using LinqKit;
using TIPWebITLibrary.BLL.AuditManagement;
using TIPWebITLibrary.BLL.Common;
using TIPWebITLibrary.BLL.InventoryManagement;
using TIPWebITLibrary.BLL.UserManagement;
using TIPWebITLibrary.DAL;
using Telerik.Web.UI;
 
namespace TIPWebIT.AuditManagement
{
    public partial class ReconcileAdministrative : System.Web.UI.Page
    {
        #region WEB METHODS
        //================================================================
        //===   WEB METHODS
        //================================================================
        [System.Web.Services.WebMethod]
        public static string ChangeTagStatus(string action, string tag, string auditDetailUID, string auditDetailRoomUID, string message)
        {
 
            var user = (User)HttpContext.Current.Session["currentUser"];
 
            // return string.Format(" AuditDetailRoomUID: {0}| UserName: {1}", AuditDetailRoomUID, user.LoginName);
 
            // Take code from current reconcile process and copy here.. Must be made static.
            //  I have passed in the needed variable info for the exisiting code base to work..
            //  I think we nned to try and move this replicated code into a BLL for better control...
 
            int adUID = Convert.ToInt32(auditDetailUID, CultureInfo.InvariantCulture);
 
            using (var item = new Inventory(tag))
            {
                if (string.IsNullOrEmpty(item.ValidationMessage))
                {
                    item.LastModifiedByUserID = user.UserID;
                    var enumAction = (AuditActionTypes)Enum.Parse(typeof(AuditActionTypes), action);   // Convert the string to a Enumerated Action Type...
                    switch (enumAction)
                    {
 
                        case AuditActionTypes.Stolen: //"Stolen":
 
                            item.TagObject.Validate(TIPWebITLibrary.BLL.InventoryManagement.validationOperation.Stolen);
                            item.StatusUID = 63; //Room Stolen
 
                            item.Update(TIPWebITResource.AuditChangedToStolen);
                            using (
                                var auditDetailInventoryCount = new AuditDetailInventoryCount(adUID, item.InventoryUID))
                            {
                                if (string.IsNullOrEmpty(auditDetailInventoryCount.ValidationMessage))
                                {
                                    auditDetailInventoryCount.Notes = TIPWebITResource.Stolen + message;
                                    auditDetailInventoryCount.ActionTypeUID = (int)AuditActionTypes.Stolen;
                                    auditDetailInventoryCount.Update();
                                }
                            }
                            break;
                        case AuditActionTypes.Lost: //"Lost":
                            if (string.IsNullOrEmpty(item.ValidationMessage))
                            {
                                item.TagObject.Validate(TIPWebITLibrary.BLL.InventoryManagement.validationOperation.Lost);
                                item.StatusUID = 49; //Room Lost
                                item.LastModifiedByUserID = user.UserID;
                                item.Update(TIPWebITResource.AuditChangedToLost);
                                using (
                                    var auditDetailInventoryCount = new AuditDetailInventoryCount(adUID,
                                                                                                  item.InventoryUID))
                                {
                                    if (string.IsNullOrEmpty(auditDetailInventoryCount.ValidationMessage))
                                    {
                                        auditDetailInventoryCount.Notes = TIPWebITResource.Lost + message;
                                        auditDetailInventoryCount.ActionTypeUID = (int)AuditActionTypes.Lost;
                                        auditDetailInventoryCount.Update();
                                    }
                                }
                            }
                            break;
                        case AuditActionTypes.Collected: // "Collect":
                            if (string.IsNullOrEmpty(item.ValidationMessage))
                            {
                                int roomUID = Convert.ToInt32(auditDetailRoomUID, CultureInfo.InvariantCulture);
                                item.LastModifiedDate = DateTime.Now;
                                item.TagObject.Validate(validationOperation.Acquire);
                                item.EntityUID = roomUID;
                                item.EntityTypeUID = (int)EntityTypeEnum.Room;
                                using (var room = new TIPWebITLibrary.BLL.RoomManagement.Room(roomUID))
                                {
                                    item.SiteUID = room.SiteUID;
                                }
                                item.StatusUID = 26; //Room Available
                                item.Update(TIPWebITResource.AuditCollected);
                                using (
                                    var auditDetailInventoryCount =
                                        new AuditDetailInventoryCount(
                                            Convert.ToInt32(adUID, CultureInfo.InvariantCulture), item.InventoryUID))
                                {
                                    if (string.IsNullOrEmpty(auditDetailInventoryCount.ValidationMessage))
                                    {
                                        auditDetailInventoryCount.Notes = TIPWebITResource.Collected + message;
                                        auditDetailInventoryCount.ActionTypeUID = (int)AuditActionTypes.Collected;
                                        auditDetailInventoryCount.Update();
                                    }
                                }
                            }
                            break;
                        case AuditActionTypes.NoAction: // "No Action":
                            if (string.IsNullOrEmpty(item.ValidationMessage))
                            {
                                int roomUID = Convert.ToInt32(auditDetailRoomUID, CultureInfo.InvariantCulture);
 
                                using (
                                    TIPWebITLibrary.BLL.AuditManagement.AuditDetailInventoryCount
                                        auditDetailInventoryCount =
                                            new TIPWebITLibrary.BLL.AuditManagement.AuditDetailInventoryCount(
                                                Convert.ToInt32(adUID, CultureInfo.InvariantCulture), item.InventoryUID)
                                    )
                                {
                                    if (string.IsNullOrEmpty(auditDetailInventoryCount.ValidationMessage))
                                    {
                                        auditDetailInventoryCount.Notes = TIPWebITResource.NoAction + message;
                                        auditDetailInventoryCount.ActionTypeUID = (int)AuditActionTypes.NoAction;
                                        auditDetailInventoryCount.Update();
                                    }
                                }
                            }
                            break;
                        default:
                            return null;
                    }
                    using (var auditDetail = new AuditDetail(adUID))
                    {
                        if (!auditDetail.ActionNeeded() && auditDetail.StatusID == 55)
                        //Finalized, should always be this
                        {
                            auditDetail.StatusID = 56; //Closed
                            auditDetail.LastModifiedByUserID = user.UserID;
                            auditDetail.LastModifiedDate = DateTime.Now;
                            auditDetail.Update();
                        }
                    }
                }
                else
                {
                    return String.Format(CultureInfo.InvariantCulture, "Validation Error: data was not updated-{0}", item.ValidationMessage);
                }
            }
 
 
 
            return true.ToString(CultureInfo.InvariantCulture);
        }
 
        //================================================================
        //===   END WEB METHODS
        //================================================================
 
        #endregion
 
        public bool SiteViewAdminRestrictReconcilingRoomAuditResults
        {
            get { return (bool)ViewState["SiteViewAdminRestrictReconcilingRoomAuditResults"]; }
        }
 
        public bool SiteViewUserRestrictReconcilingRoomAuditResults
        {
            get { return (bool)ViewState["SiteViewUserRestrictReconcilingRoomAuditResults"]; }
        }
 
        protected void Page_Load(object sender, EventArgs e)
        {
            RadAjaxManager manager = RadAjaxManager.GetCurrent(this.Page);
            manager.ClientEvents.OnResponseEnd = "ucOnResponseEnd";
 
 
            RadGridAudits.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.None;
 
            Page.Header.Attributes.Add("data-is-postback", Page.IsPostBack ? "true" : "false");
 
 
            if (!Page.IsPostBack)
            {
                RadWindowActionNotes.Behaviors = Telerik.Web.UI.WindowBehaviors.None;
                RadWindowActionNotes.Behaviors = WindowBehaviors.Move;
                RadWindowActionNotes.Modal = true;
 
                Master.HeaderImagePath = "~/App_Themes/" + Page.Theme + "/Images/Audit.gif";
                Master.HeaderText = "Audit";
 
                PopulateRadComboSiteName();
                PopulateRadTagComboAuditState();
                PopulateRadComboRoomAuditStatus();
                PopulateRadComboExpectedLocationType();
                PopulateRadComboHardwareType();
            }
 
        }
 
        private void PopulateRadComboSiteName()
        {
            using (var db = new TIPWebITDataContext())
            {
                var sites = db.tblTechSites.Where(x => x.Active && x.SiteUID != 1).OrderBy(x => x.SiteName);
                RadComboSiteName.DataTextField = "SiteName";
                RadComboSiteName.DataValueField = "SiteUID";
                RadComboSiteName.DataSource = sites;
                RadComboSiteName.DataBind();
 
            }
        }
 
        private void PopulateRadTagComboAuditState()
        {
            using (var db = new TIPWebITDataContext())
            {
                var tagAuditStates = db.tblStatus.Where(x => x.StatusTypeUID == 12).OrderBy(x => x.statusDesc);   //AuditInventoryStates
                RadComboTagAuditState.DataTextField = "statusDesc";
                RadComboTagAuditState.DataValueField = "statusID";
                RadComboTagAuditState.DataSource = tagAuditStates;
                RadComboTagAuditState.DataBind();
            }
 
        }
 
        private void PopulateRadComboRoomAuditStatus()
        {
            using (var db = new TIPWebITDataContext())
            {
                var roomAuditStatuses =
                    db.tblStatus.Where(x => x.StatusTypeUID == 13).OrderBy(x => x.statusDesc);
                RadComboRoomAuditStatus.DataTextField = "statusDesc";
                RadComboRoomAuditStatus.DataValueField = "statusID";
                RadComboRoomAuditStatus.DataSource = roomAuditStatuses;
                RadComboRoomAuditStatus.DataBind();
 
            }
        }
 
        private void PopulateRadComboExpectedLocationType()
        {
 
            using (var db = new TIPWebITDataContext())
            {
                var entityTypes =
                    db.tblUnvEntityTypes.Where(
                        x =>
                             x.EntityTypeUID == 2 ||
                             x.EntityTypeUID == 3 ||
                             x.EntityTypeUID == 4)
                      .OrderBy(x => x.Description);
                RadComboExpectedLocationType.DataTextField = "Description";
                RadComboExpectedLocationType.DataValueField = "EntityTypeUID";
                RadComboExpectedLocationType.DataSource = entityTypes;
                RadComboExpectedLocationType.DataBind();
 
            }
        }
 
        protected void PopulateRadComboHardwareType()
        {
            using (var db = new TIPWebITDataContext())
            {
                var itemTypes = db.tblTechItemTypes.Where(x => x.ItemTypeUID != 0)
                                  .OrderBy(x => x.ItemTypeName);
                RadComboHardwareType.DataTextField = "ItemTypeName";
                RadComboHardwareType.DataValueField = "ItemTypeUID";
                RadComboHardwareType.DataSource = itemTypes;
                RadComboHardwareType.DataBind();
            }
        }
 
        private List<AuditReconcileView> GetAuditData()
        {
            if (!Page.IsPostBack)
            {
                var emptyResult = new List<AuditReconcileView>();
                return emptyResult.ToList();
            }
            using (var context = new TIPWebITDataContext())
            {
                List<int> userDepartments = ((User)HttpContext.Current.Session["currentUser"]).Departments;
 
                var filterAuditState = (from item in RadComboTagAuditState.CheckedItems select Convert.ToInt32(item.Value, CultureInfo.InvariantCulture)).ToList();
                //RadComboExpectedLocationType
                var filterExpectedLocationType = (from item in RadComboExpectedLocationType.CheckedItems select Convert.ToInt32(item.Value, CultureInfo.InvariantCulture)).ToList();
                //RadComboRoomAuditStatus
                var filterRoomAuditStatus = (from item in RadComboRoomAuditStatus.CheckedItems select Convert.ToInt32(item.Value, CultureInfo.InvariantCulture)).ToList();
                //RadComboHardwareType
                var filterHardwareType = (from item in RadComboHardwareType.CheckedItems select Convert.ToInt32(item.Value, CultureInfo.InvariantCulture)).ToList();
 
 
                //RadComboSiteName
                var filterSiteUID = (from item in RadComboSiteName.CheckedItems select Convert.ToInt32(item.Value, CultureInfo.InvariantCulture)).ToList();
 
                //RadDatePickerAuditDateAfter
                DateTime? filterAuditDateAfter = (DateTime?)RadDatePickerAuditDateAfter.SelectedDate;
                DateTime? filterAuditDateAfterBetween = (DateTime?)RadDatePickerAuditDateAfterBetween.SelectedDate;
 
                //RadDatePickerLastScanDate
                DateTime? filterLastScanDate = (DateTime?)RadDatePickerLastScanDate.SelectedDate;
                DateTime? filterLastScanDateBetween = (DateTime?)RadDatePickerLastScanDateBetween.SelectedDate;
 
                //RadNumericTextboxPrice
                decimal? filterPrice = (decimal?)RadNumericTextBoxPrice.Value;
                decimal? filterPriceBetween = (decimal?)RadNumericTextBoxPriceBetween.Value;
 
                var result = (from inventory in context.tblTechInventories
                              join adic in
                                  (from auditDetailInventoryCount in context.tblTechAuditDetailInventoryCounts
                                   group auditDetailInventoryCount by new { auditDetailInventoryCount.InventoryUID }
                                       into g
                                       select new
                                           {
                                               g.Key.InventoryUID,
                                               LastModifiedDate = g.Max(m => m.LastModifiedDate)
                                           }) on inventory.InventoryUID equals adic.InventoryUID into selfJoin
                              from adic in selfJoin.DefaultIfEmpty()
                              join adicState in
                                  (from auditDetailInventoryCount in context.tblTechAuditDetailInventoryCounts
                                   group auditDetailInventoryCount by
                                       new
                                           {
                                               auditDetailInventoryCount.InventoryUID,
                                               auditDetailInventoryCount.LastModifiedDate
                                           }
                                       into groupState
                                       select new
                                           {
                                               groupState.Key.InventoryUID,
                                               groupState.Key.LastModifiedDate,
                                               StatusID = groupState.Max(m => m.StatusID)
                                           }) on new { adic.InventoryUID, adic.LastModifiedDate } equals
                                  new { adicState.InventoryUID, adicState.LastModifiedDate } into selfJoinAdicState
                              from adicState in selfJoinAdicState.DefaultIfEmpty()
                              join adicUID in
                                  (from auditDetailInventoryCount in context.tblTechAuditDetailInventoryCounts
                                   group auditDetailInventoryCount by
                                       new
                                           {
                                               auditDetailInventoryCount.InventoryUID,
                                               auditDetailInventoryCount.LastModifiedDate,
                                               auditDetailInventoryCount.StatusID
                                           }
                                       into groupUID
                                       select new
                                           {
                                               groupUID.Key.InventoryUID,
                                               groupUID.Key.LastModifiedDate,
                                               groupUID.Key.StatusID,
                                               adicUID = groupUID.Max(m => m.AuditDetailInventoryCountUID)
                                           }) on
                                  new { adicState.InventoryUID, adicState.LastModifiedDate, adicState.StatusID } equals
                                  new { adicUID.InventoryUID, adicUID.LastModifiedDate, adicUID.StatusID } into
                                  selfJoinAdicUID
                              from adicUID in selfJoinAdicUID.DefaultIfEmpty()
                              join adicLast in
                                  (from auditDetailInventoryCount in context.tblTechAuditDetailInventoryCounts
                                   join auditDetailInventoryCountState in context.tblStatus
                                       on auditDetailInventoryCount.StatusID equals
                                       auditDetailInventoryCountState.statusID
 
                                   join auditDetail in context.tblTechAuditDetails
                                       on auditDetailInventoryCount.AuditDetailUID equals auditDetail.AuditDetailUID
                                   join auditStatus in context.tblStatus on auditDetail.StatusID equals
                                       auditStatus.statusID
                                   join site in context.tblTechSites on auditDetail.SiteUID equals site.SiteUID
                                   join room in context.tblUnvRooms on auditDetail.RoomUID equals room.RoomUID
 
                                   select new
                                       {
                                           auditDetailInventoryCount.AuditDetailInventoryCountUID,
                                           auditDetail.AuditDetailUID,
                                           auditDetail.AuditUID,
                                           auditDetail.StatusID,
                                           Status = auditStatus.statusDesc,
                                           SiteUID = auditDetail.SiteUID,
                                           SiteName = site.SiteName,
                                           RoomUID = room.RoomUID,
                                           Location = " Room: " + room.RoomNumber,
                                           ScanDate = auditDetailInventoryCount.LastModifiedDate,
                                           StateID = auditDetailInventoryCount.StatusID,
                                           State = auditDetailInventoryCountState.statusDesc,
                                           Notes = auditDetailInventoryCount.Notes,
                                           ActionTakenUID = auditDetailInventoryCount.ActionTypeUID
                                       }) on adicUID.adicUID equals adicLast.AuditDetailInventoryCountUID into
                                  selfJoinLast
                              from adicLast in selfJoinLast.DefaultIfEmpty()
                              join auditDepartments in context.tblTechAuditDepartments on adicLast.AuditUID equals
                                    auditDepartments.AuditUID into ad
                              from auditDepartments in ad.DefaultIfEmpty()
                              join audit in context.tblUnvAudits on adicLast.AuditUID equals audit.AuditUID into ua
                              from audit in ua.DefaultIfEmpty()
                              join iHist in
                                  (from iH in context.tblTechInventoryHistories
                                   join aC in context.tblTechAuditDetailInventoryCounts
                                       on iH.InventoryUID equals aC.InventoryUID into ac
                                   from aC in ac.DefaultIfEmpty()
                                   join aD in context.tblTechAuditDetails
                                       on aC.AuditDetailUID equals aD.AuditDetailUID into ad
                                   from aD in ad.DefaultIfEmpty()
                                   where iH.CreatedDate <=
                                         (aD.StatusID == null
                                              ? DateTime.Now
                                              : aD.StatusID != 56 ? DateTime.Now : aD.LastModifiedDate)
                                   //Closed
                                   group iH by new
                                       {
                                           iH.InventoryUID,
                                       }
                                       into iHg
                                       select new
                                           {
                                               iHg.Key.InventoryUID,
                                               InventoryHistoryUID = iHg.Max(m => m.InventoryHistoryUID)
                                           }) on inventory.InventoryUID equals iHist.InventoryUID into histGroup
                              from iHist in histGroup.DefaultIfEmpty()
                              join inventoryHistory in context.tblTechInventoryHistories
                                  on iHist.InventoryHistoryUID equals inventoryHistory.InventoryHistoryUID into
                                  selfJoinHist
                              from inventoryHistory in selfJoinHist.DefaultIfEmpty()
                              join inventoryHistorySite in context.tblTechSites on inventoryHistory.SiteUID equals
                                  inventoryHistorySite.SiteUID
                              join item in context.tblTechItems on inventory.ItemUID equals item.ItemUID
                              join a in context.tblUnvArchives on inventory.ArchiveUID equals a.ArchiveUID into archive
                              from a in archive.DefaultIfEmpty()
                              join au in context.tblUsers on a.ArchiveUserID equals au.UserID into archiveUser
                              from au in archiveUser.DefaultIfEmpty()
                              join entityType in context.tblUnvEntityTypes on inventoryHistory.EntityTypeUID equals
                                  entityType.EntityTypeUID
                              join room in context.tblUnvRooms on inventoryHistory.EntityUID equals room.RoomUID into r
                              from room in r.DefaultIfEmpty()
                              join roomSite in context.tblTechSites on room.SiteUID equals roomSite.SiteUID into rs
                              from roomSite in rs.DefaultIfEmpty()
                              join staff in context.tblTeachers on inventoryHistory.EntityUID equals staff.TeachersUID
                                  into t
                              from staff in t.DefaultIfEmpty()
                              join student in context.tblStudents on inventoryHistory.EntityUID equals
                                  student.StudentsUID into s
                              from student in s.DefaultIfEmpty()
                              join transfer in context.tblTechTransfers on inventoryHistory.EntityUID equals
                                  transfer.TransferUID into tf
                              from transfer in tf.DefaultIfEmpty()
                              select new AuditReconcileView
                                  {
                                      ActionTakenUID = adicLast.ActionTakenUID == null ? 0 : adicLast.ActionTakenUID,
                                      AuditDetailRoomUID = (int?)adicLast.RoomUID,
                                      AuditDetailUID = (int?)adicLast.AuditDetailUID,
                                      RoomAuditStatusUID = (int?)adicLast.StatusID,
                                      RoomAuditStatus = adicLast.Status,
                                      Notes = adicLast.Notes,
                                      TagAuditStateUID = (int?)adicLast.StateID,
                                      TagAuditState = adicLast.State,
                                      AuditDate = (DateTime?)audit.CreatedDate,
                                      Tag = inventory.Tag,
                                      ProductName = item.ItemName,
                                      HardwareTypeUID = item.ItemTypeUID,
                                      Price = item.ItemSuggestedPrice,
                                      LastScanDate =
                                  inventory.ArchiveUID > 0 ? a.ArchiveDate : (inventory.LastModifiedDate),
                                      //LastScanBy =
                                      //    i.ArchiveUID > 0
                                      //        ? (au.RealName == null ? TIPWebITResource.MissingUserRecord : au.RealName)
                                      //        : (scanner.RealName == null
                                      //               ? TIPWebITResource.MissingUserRecord
                                      //               : scanner.RealName),
                                      ExpectedSiteUID = inventoryHistory.SiteUID,
                                      ExpectedLocationType = entityType.EntityTypeUID,
                                      // i.ArchiveUID > 0 ? string.Empty : (entityType.Description + ": " + (inventory.EntityTypeUID == 6 ? transfer.TransferNumber.ToString() : inventory.EntityTypeUID == 4 ? student.FullName : inventory.EntityTypeUID == 3 ? staff.FullName : room.RoomNumber)),
                                      ExpectedLocation =
                                  inventory.ArchiveUID > 0
                                      ? string.Empty
                                      : ((adicLast.SiteUID != roomSite.SiteUID ? "<span style='color: red;'>Site: " + roomSite.SiteName + "</span><br />" : "") + entityType.Description + ": " +
                                         (inventoryHistory.EntityTypeUID == 6
                                              ? transfer.TransferNumber.ToString()
                                              : inventoryHistory.EntityTypeUID == 4
                                                    ? student.FullName
                                                    : inventoryHistory.EntityTypeUID == 3
                                                          ? staff.FullName
                                                          : room.RoomNumber)),
                                      AuditLocation = adicLast.Location,
                                      AuditScanDate = (DateTime?)adicLast.ScanDate,
                                      //AuditScanBy = adicLast.ScanBy,
                                      //g.Key.SiteUID,
                                      AuditSiteUID = adicLast.SiteUID == null ? 0 : adicLast.SiteUID,
                                      AuditSite = adicLast.SiteName == null ? "" : adicLast.SiteName,
                                      Archived = inventory.ArchiveUID > 0 ? "Archived" : string.Empty
                                  }).AsQueryable();
 
 
 
                //===================Filters that are required====================
                // Done -  Tag Audit State (Status)   from count table      = Tag
                // Done - Site Name                                         = SiteUID   
                // Done - Audit Date After                                  = AuditDate
                // Done -  Expected Location Type                           = ExpectedLocationType 
                //Room Audit Status   from teh details table                = RoomAuditStatus
                //Hardware Type                                             = HardwareTypeUID
                //Last Scan Date                                            = LastScanDate                  
                //Price                                                     =
 
                //==============================================================
                //===   MULTI-SELECT COMBO FILTERS
                //==============================================================
                var predicateTagAuditState = PredicateBuilder.False<AuditReconcileView>();
                if (filterAuditState.Any())
                {
                    predicateTagAuditState = filterAuditState.Aggregate(predicateTagAuditState, (current, temp) => current.Or(p => p.TagAuditStateUID.Equals(temp)));
 
                    //NOTE: left this as an example of how it would look in a for loop
                    //foreach (var item in filterAuditState)
                    //{
                    //    int temp = item;
                    //    predicateTagAuditState = predicateTagAuditState.Or(p => p.TagAuditStateUID.Equals(temp));
                    //}
                }
 
                var predicateExpectedLocationType = PredicateBuilder.False<AuditReconcileView>();
                if (filterExpectedLocationType.Any())
                {
                    predicateExpectedLocationType = filterExpectedLocationType.Aggregate(predicateExpectedLocationType, (current, temp) => current.Or(p => p.ExpectedLocationType.Equals(temp)));
                }
 
                var predicateRoomStatus = PredicateBuilder.False<AuditReconcileView>();
                if (filterRoomAuditStatus.Any())
                {
                    predicateRoomStatus = filterRoomAuditStatus.Aggregate(predicateRoomStatus, (current, temp) => current.Or(p => p.RoomAuditStatusUID.Equals(temp)));
                }
 
                var predicateHardwareType = PredicateBuilder.False<AuditReconcileView>();
                if (filterHardwareType.Any())
                {
                    predicateHardwareType = filterHardwareType.Aggregate(predicateHardwareType, (current, temp) => current.Or(p => p.HardwareTypeUID.Equals(temp)));
                }
 
 
                var predicateSiteUID = PredicateBuilder.False<AuditReconcileView>();
                if (filterSiteUID.Any())
                {
                    predicateSiteUID = filterSiteUID.Aggregate(predicateSiteUID, (current, siteUID) => current.Or(p => p.AuditSiteUID.Equals(siteUID)));
                }
 
 
 
 
 
                //==============================================================
                //===   Between & DATE FILTERS
                //==============================================================
                var predicateAuditDateAfter = PredicateBuilder.False<AuditReconcileView>();
                if (filterAuditDateAfter != null)
                {
                    DateTime afterDate = Convert.ToDateTime(((DateTime)filterAuditDateAfter).ToShortDateString() + " 12:00:00 AM", CultureInfo.InvariantCulture);
                    var afterDateNoTime = ((DateTime)filterAuditDateAfter).ToShortDateString();
                    switch (RadComboBoxAuditDateAfterSearchType.SelectedValue)
                    {
 
                        case "greaterthan":
                            predicateAuditDateAfter = predicateAuditDateAfter.Or(p => p.AuditDate >= afterDate);
                            break;
                        case "lessthan":
                            predicateAuditDateAfter = predicateAuditDateAfter.Or(p => p.AuditDate <= afterDate);
                            break;
                        case "equalto":
                            // Because the date in the system could contain a Time ....
 
                            DateTime afterDateEqualBetween = Convert.ToDateTime((afterDate).ToShortDateString() + " 11:59:59 PM", CultureInfo.InvariantCulture);
                            predicateAuditDateAfter = predicateAuditDateAfter.Or(p => p.AuditDate >= afterDate && p.AuditDate <= afterDateEqualBetween);
 
 
                            //  predicateAuditDateAfter = predicateAuditDateAfter.Or(p => p.AuditDate == afterDate);
                            break;
                        case "between":
                            if (filterAuditDateAfterBetween == null) break;
                            DateTime afterDateBetween = Convert.ToDateTime(((DateTime)filterAuditDateAfterBetween).ToShortDateString() + " 11:59:59 PM", CultureInfo.InvariantCulture);
                            predicateAuditDateAfter = predicateAuditDateAfter.Or(p => p.AuditDate >= afterDate && p.AuditDate <= afterDateBetween);
                            break;
                    }
                }
 
 
                var predicateLastScanDate = PredicateBuilder.False<AuditReconcileView>();
 
                if (filterLastScanDate != null)
                {
                    DateTime lastScanDate = Convert.ToDateTime(((DateTime)filterLastScanDate).ToShortDateString() + " 12:00:00 AM", CultureInfo.InvariantCulture);
 
                    switch (RadComboBoxLastScanDateSearchType.SelectedValue)
                    {
                        case "greaterthan":
                            predicateLastScanDate = predicateLastScanDate.Or(p => p.LastScanDate >= lastScanDate);
                            break;
                        case "lessthan":
                            predicateLastScanDate = predicateLastScanDate.Or(p => p.LastScanDate <= lastScanDate);
                            break;
                        case "equalto":
                            // Because the date in the system could contain a Time ....
 
                            DateTime lastScanDateEqualBetween = Convert.ToDateTime((lastScanDate).ToShortDateString() + " 11:59:59 PM", CultureInfo.InvariantCulture);
                            predicateLastScanDate = predicateLastScanDate.Or(p => p.LastScanDate >= lastScanDate && p.LastScanDate <= lastScanDateEqualBetween);
 
                            // predicateLastScanDate = predicateLastScanDate.Or(p => p.LastScanDate == lastScanDate);
                            break;
                        case "between":
                            if (filterLastScanDateBetween == null) break;
                            DateTime lastScanDateBetween = Convert.ToDateTime(((DateTime)filterLastScanDateBetween).ToShortDateString() + " 11:59:59 PM", CultureInfo.InvariantCulture);
                            predicateLastScanDate = predicateLastScanDate.Or(p => p.LastScanDate >= lastScanDate && p.LastScanDate <= lastScanDateBetween);
                            break;
                    }
                }
 
                var predicatePrice = PredicateBuilder.False<AuditReconcileView>();
                if (filterPrice != null)
                {
 
 
                    decimal? price = filterPrice;
                    var filterType = RadComboBoxPriceSearchType.SelectedValue;
 
                    switch (filterType)
                    {
                        case "greaterthan":
                            predicatePrice = predicatePrice.Or(p => p.Price >= price);
                            break;
                        case "lessthan":
                            predicatePrice = predicatePrice.Or(p => p.Price <= price);
                            break;
 
                        case "equalto":
                            predicatePrice = predicatePrice.Or(p => p.Price == price);
                            break;
                        case "between":
                            if (PriceBetween == null) break;
                            decimal? priceBetween = filterPriceBetween;
                            predicatePrice = predicatePrice.Or(p => p.Price >= price && p.Price <= priceBetween);
                            break;
                    }
 
                }
 
 
 
                // BUILD FILTER EXPRESSION USING LINQKIT Dynamic Predicates - See http://www.albahari.com/nutshell/linqkit.aspx
 
                // finalPredicate will be built depending on the filter sets the user has selected.
                Expression<Func<AuditReconcileView, bool>> finalPredicates = null;
 
 
 
                // I could have included these in the code above, but I believe this will be a bit more clear for the next developer.
                if (filterAuditState.Any())
                {
                    finalPredicates = predicateTagAuditState;
                }
 
                if (filterExpectedLocationType.Any())
                {
                    finalPredicates = finalPredicates == null ? predicateExpectedLocationType : finalPredicates.And(predicateExpectedLocationType);
 
                }
 
                if (filterRoomAuditStatus.Any())
                {
                    finalPredicates = finalPredicates == null ? predicateRoomStatus : finalPredicates.And(predicateRoomStatus);
                }
 
                if (filterSiteUID.Any())
                {
                    finalPredicates = finalPredicates == null ? predicateSiteUID : finalPredicates.And(predicateSiteUID);
                }
 
                if (filterHardwareType.Any())
                {
                    finalPredicates = finalPredicates == null ? predicateHardwareType : finalPredicates.And(predicateHardwareType);
 
                }
 
                //NOTE: There might be a clearner way to do this logic.
 
 
                //===========================
                //==    Audit Date After
                //===========================
                if (filterAuditDateAfter != null && filterAuditDateAfterBetween != null)
                {
                    finalPredicates = finalPredicates == null
                                           ? predicateAuditDateAfter
                                           : finalPredicates.And(predicateAuditDateAfter);
                }
                else
                {
                    if (filterAuditDateAfter != null)
                    {
                        finalPredicates = finalPredicates == null
                                              ? predicateAuditDateAfter
                                              : finalPredicates.And(predicateAuditDateAfter);
                    }
                }
 
                //============================
                //==    Last Scan Date
                //============================
                if (filterLastScanDate != null && filterLastScanDateBetween != null)
                {
                    finalPredicates = finalPredicates == null
                                           ? predicateLastScanDate
                                           : finalPredicates.And(predicateLastScanDate);
                }
                else
                {
                    if (filterLastScanDate != null)
                    {
                        finalPredicates = finalPredicates == null ? predicateLastScanDate : finalPredicates.And(predicateLastScanDate);
                    }
                }
 
                //==================================
                //==    Price
                //==================================
                if (filterPrice != null && filterPriceBetween != null)
                {
                    finalPredicates = finalPredicates == null
                                           ? predicatePrice
                                           : finalPredicates.And(predicatePrice);
                }
                else
                {
                    if (filterPrice != null)
                    {
                        finalPredicates = finalPredicates == null ? predicatePrice : finalPredicates.And(predicatePrice);
                    }
                }
 
                //==============================================
                //==  Add All predicates to the where clause
                //==  in the linq result set... 
                //==============================================
                if (finalPredicates != null)
                {
                    var filterResult = result.Where(finalPredicates);
                    return filterResult.OrderBy(x => x.AuditDate).ToList();
                }
                return result.OrderBy(x => x.AuditDate).ToList();
            }
        }
 
        protected void ImageButtonGo_Click(object sender, ImageClickEventArgs e)
        {
 
            RadGridAudits.DataSource = GetAuditData();
            RadGridAudits.Visible = true;
            RadGridAudits.MasterTableView.SortExpressions.Clear();
            RadGridAudits.Rebind();
 
        }
 
        protected void ImageButtonReset_Click(object sender, ImageClickEventArgs e)
        {
 
        }
 
        private void configureRadComboBoxActions()
        {
 
        }
 
        protected void RadGridAudits_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
        {
            if (e == null)
            {
                return;
            }
            var user = (User)Session["currentUser"];
            if (e.Item is GridPagerItem)
            {
                RadComboBox PageSizeCombo = (RadComboBox)e.Item.FindControl("PageSizeComboBox");
                PageSizeCombo.Items.Clear();
                PageSizeCombo.Items.Add(new RadComboBoxItem(TIPWebITResource.Number10));
                PageSizeCombo.FindItemByText(TIPWebITResource.Number10).Attributes.Add("ownerTableViewId", RadGridAudits.MasterTableView.ClientID);
                PageSizeCombo.Items.Add(new RadComboBoxItem(TIPWebITResource.Number15));
                PageSizeCombo.FindItemByText(TIPWebITResource.Number15).Attributes.Add("ownerTableViewId", RadGridAudits.MasterTableView.ClientID);
                PageSizeCombo.Items.Add(new RadComboBoxItem(TIPWebITResource.Number20));
                PageSizeCombo.FindItemByText(TIPWebITResource.Number20).Attributes.Add("ownerTableViewId", RadGridAudits.MasterTableView.ClientID);
                PageSizeCombo.Items.Add(new RadComboBoxItem(TIPWebITResource.Number30));
                PageSizeCombo.FindItemByText(TIPWebITResource.Number30).Attributes.Add("ownerTableViewId", RadGridAudits.MasterTableView.ClientID);
                PageSizeCombo.Items.Add(new RadComboBoxItem(TIPWebITResource.Number50));
                PageSizeCombo.FindItemByText(TIPWebITResource.Number50).Attributes.Add("ownerTableViewId", RadGridAudits.MasterTableView.ClientID);
                PageSizeCombo.FindItemByText(e.Item.OwnerTableView.PageSize.ToString(CultureInfo.InvariantCulture)).Selected = true;
            }
 
            if (e.Item is GridDataItem)
            {
 
                Image stateImage = (Image)e.Item.FindControl("ImageState");
                Label LabelTagAuditState = (Label)e.Item.FindControl("LabelTagAuditState");
                HiddenField hiddenFieldActionTakenUID = (HiddenField)e.Item.FindControl("hiddenFieldActionTakenUID");
                if (LabelTagAuditState.Text == "Missing")
                {
                    stateImage.ImageUrl = string.Format(CultureInfo.InvariantCulture, "~/App_Themes/{0}/Images/Approve_Red_16.gif", Page.Theme);
                }
                else if (LabelTagAuditState.Text == "Misplaced")
                {
                    stateImage.ImageUrl = string.Format(CultureInfo.InvariantCulture, "~/App_Themes/{0}/Images/Alert_16.gif", Page.Theme);
                }
                else if (LabelTagAuditState.Text == "Verified")
                {
                    stateImage.ImageUrl = string.Format(CultureInfo.InvariantCulture, "~/App_Themes/{0}/Images/Approve_16.gif", Page.Theme);
                }
                else
                {
                    stateImage.Visible = false;
                }
 
 
                LinkButton TagLabel = (LinkButton)e.Item.FindControl("TagLabel");
                TagLabel.OnClientClick = "OpenTagInfo('" + TagLabel.Text.Trim() + "'); return false;";
 
                //====================================
                //===   ACTION COLUMN
                //====================================
                Image notesImage = (Image)e.Item.FindControl("NotesImage");
                RadComboBox radComboBoxActions = (RadComboBox)e.Item.FindControl("RadComboBoxActions");
                Label actionLabel = (Label)e.Item.FindControl("ActionLabel");
                //  HiddenField archived = (HiddenField)e.Item.FindControl("ArchivedHidden");
                RadToolTip toolTip = (RadToolTip)e.Item.FindControl("RadToolTipNotes");
                // HiddenField ActionTaken = (HiddenField) e.Item.FindControl("ActionTaken");
 
                //Convert string (ActionTypeUID) from hidden field in grid to enum AuditActionTypes
                var auditActionTypes = (AuditActionTypes)Enum.Parse(typeof(AuditActionTypes), hiddenFieldActionTakenUID.Value);
 
                //Check the items Current AuditState { Missing, Misplaced }
                // By Default hide the actions combobox
                radComboBoxActions.Visible = false;
                if (LabelTagAuditState.Text.Length > 0)
                {
                    switch (LabelTagAuditState.Text)
                    {
                        case "Missing":
                            ConfigureradComboBoxActions(e, LabelTagAuditState, radComboBoxActions, user, actionLabel);
                            break;
                        case "Misplaced":
                            ConfigureradComboBoxActions(e, LabelTagAuditState, radComboBoxActions, user, actionLabel);
                            break;
                        case "Verified":
                            ConfigureradComboBoxActions(e, LabelTagAuditState, radComboBoxActions, user, actionLabel);
                            break;
                        default:
                            break;
 
                    }
 
 
 
                    switch (auditActionTypes)
                    {
                        case AuditActionTypes.None:
                            //Perform operation
                            actionLabel.Visible = false;
                            notesImage.Visible = false;
                            break;
                        case AuditActionTypes.NoAction:
                            //Perform operation
                            actionLabel.Text = TIPWebITResource.NoAction;
                            notesImage.Visible = true;
                            break;
                        case AuditActionTypes.Verified:
                            //Perform operation
                            radComboBoxActions.Visible = false;
                            actionLabel.Text = TIPWebITResource.Space;
                            actionLabel.Visible = true;
                            break;
                        case AuditActionTypes.Stolen:
                            //Perform operation
                            actionLabel.Text = TIPWebITResource.Stolen;
                            notesImage.Visible = true;
                            break;
                        case AuditActionTypes.Collected:
                            //Perform operation 
                            actionLabel.Text = TIPWebITResource.Collected;
                            notesImage.Visible = true;
                            break;
                        case AuditActionTypes.Lost:
                            //Perform operation
                            actionLabel.Text = TIPWebITResource.Lost;
                            notesImage.Visible = true;
                            break;
                        default:
                            //Perform operation
 
 
                            break;
                    }
 
                }
                //if (LabelTagAuditState.Text != "Verified")
                //{
                //    ConfigureradComboBoxActions(e, LabelTagAuditState, radComboBoxActions, user, actionLabel);
                //}
 
 
 
 
                //if (LabelTagAuditState.Text == "Verified") //|| archived.Value == "Archived")
                //{
                //    actions.Visible = false;
                //    actionLabel.Text = TIPWebITResource.Space;
                //    actionLabel.Visible = true;
                //}
                //else if (toolTip.Text.Length > 6)
                //{
                //    actions.Visible = false;
                //    //switch (toolTip.Text)
                //    //{
                //    //    case "<br />Lost prior to Audit":
                //    //        actionLabel.Text = TIPWebITResource.Space;
                //    //        break;
                //    //    case  "<br />Lost":
                //    //        actionLabel.Text = TIPWebITResource.Lost;
                //    //        break;
                //    //    case "<br />Collected":
                //    //        actionLabel.Text = TIPWebITResource.Collected;
                //    //        break;
                //    //    case "<br />No Notes":
                //    //        actionLabel.Text = TIPWebITResource.NoAction;
                //    //        break;
                //    //    case "<br />Stolen:":
                //    //        actionLabel.Text = TIPWebITResource.Stolen;
                //    //        break;
                //    //    default:
                //    //        actionLabel.Text = TIPWebITResource.NoAction;
                //    //        notesImage.Visible = true;
                //    //        break;
                //    //}
 
                //    if (toolTip.Text.Contains("Lost prior to Audit"))
                //    {
                //        actionLabel.Text = TIPWebITResource.Space;
                //        notesImage.Visible = true;
                //    }
                //    else if (toolTip.Text.Contains("Lost"))
                //    {
                //        //actionLabel.Text = TIPWebITResource.Lost;
                //        //notesImage.Visible = true;
                //    }
                //    else if (toolTip.Text.Contains("Collected"))
                //    {
                //        //actionLabel.Text = TIPWebITResource.Collected;
                //        //notesImage.Visible = true;
                //    }
                //    else if (toolTip.Text.Contains("No Notes"))
                //    {
                //        actionLabel.Text = TIPWebITResource.NoAction;
                //        notesImage.Visible = true;
                //    }
                //    else if (toolTip.Text.Contains("Stolen"))
                //    {
                //        actionLabel.Text = TIPWebITResource.Stolen;
                //        notesImage.Visible = true;
                //    }
                //    else
                //    {
 
                //        actionLabel.Visible = false;
                //        notesImage.Visible = false;
                //        //actionLabel.Text = TIPWebITResource.NoAction;
                //        //notesImage.Visible = true;
                //    }
 
                //    actionLabel.Visible = true;
                //}
                //else
                //{
 
                //    GridDataItem item = (GridDataItem)e.Item;
                //    string auditDetailRoomUID = item.OwnerTableView.DataKeyValues[item.ItemIndex]["auditDetailRoomUID"].ToString();
                //    string auditDetailUID = item.OwnerTableView.DataKeyValues[item.ItemIndex]["auditDetailUID"].ToString();
                //    string tag = item.OwnerTableView.DataKeyValues[item.ItemIndex]["Tag"].ToString();
 
 
                //    string auditDetailUIDAndTag = string.Format(CultureInfo.InvariantCulture, "{0}|{1}|{2}", auditDetailUID, auditDetailRoomUID, tag);
 
                //    //I am using the value in the combo's to pass an array of data I am using for my ajax web method.
                //    //Do not change the order unless you update the split code on the javascript side.
 
                //    //Note: Each combo VALUE must be unique (reported defect in RadComboBox) so I have appended the action to the
                //    //Note:   value (No Action, Lost, Stolen or Collect) to ensure they are unique via action.
 
                //    using (var noActionCombo = new RadComboBoxItem(TIPWebITResource.NoAction, auditDetailUIDAndTag + "|NoAction"))
                //    {
                //        //read comment above
                //        noActionCombo.ToolTip = TIPWebITResource.noActionComboToolTip;
 
                //        using (RadComboBoxItem lostCombo = new RadComboBoxItem(TIPWebITResource.Lost, auditDetailUIDAndTag + "|Lost"))
                //        {//read comment above
                //            lostCombo.ToolTip = TIPWebITResource.LostComboToolTip;
 
                //            using (RadComboBoxItem stolenCombo = new RadComboBoxItem(TIPWebITResource.Stolen, auditDetailUIDAndTag + "|Stolen"))
                //            {  //read comment above
                //                stolenCombo.ToolTip = TIPWebITResource.stolenComboToolTip;
 
                //                using (RadComboBoxItem collectCombo = new RadComboBoxItem(TIPWebITResource.Collect, auditDetailUIDAndTag + "|Collect"))
                //                {
                //                    //read comment above
                //                    collectCombo.ToolTip = TIPWebITResource.collectComboToolTip;
                //                    #region
 
 
                //                    switch (LabelTagAuditState.Text)
                //                    {
                //                        case "Found":
                //                            using (RadComboBoxItem statusSeparator = new RadComboBoxItem(TIPWebITResource.ChangeStatusDivider))
                //                            {
                //                                actions.Visible = false;
                //                                actions.Enabled = false;
                //                            }
                //                            break;
                //                        case "Missing":
                //                            switch (user.UserRole)
                //                            {
                //                                case UserRole.SiteViewAdmin:
                //                                    //GET THE DISTRICT PREFERENCES THAT WILL AFFECT THE VIEW
                //                                    //if (this.SiteViewAdminRestrictReconcilingRoomAuditResults)
                //                                    //{
                //                                    //    // Item is checked
                //                                    //    actions.Visible = false;
                //                                    //    return;
                //                                    //}
                //                                    //using (RadComboBoxItem statusSeparator = new RadComboBoxItem(TIPWebITResource.ChangeStatusDivider))
                //                                    //{
                //                                    //    actions.Items.Add(noActionCombo);
                //                                    //    statusSeparator.IsSeparator = true;
                //                                    //    actions.Items.Add(statusSeparator);
                //                                    //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.Lost, TIPWebITResource.Lost));
                //                                    //    actions.Enabled = true;
                //                                    //}
 
                //                                    break;
                //                                case UserRole.SiteViewUser:
                //                                    //if (this.SiteViewUserRestrictReconcilingRoomAuditResults)
                //                                    //{
                //                                    //    // Item is checked
                //                                    //    actions.Visible = false;
                //                                    //    return;
                //                                    //}
                //                                    //using (RadComboBoxItem statusSeparator = new RadComboBoxItem(TIPWebITResource.ChangeStatusDivider))
                //                                    //{
                //                                    //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.NoAction, TIPWebITResource.NoAction));
                //                                    //    statusSeparator.IsSeparator = true;
                //                                    //    actions.Items.Add(statusSeparator);
                //                                    //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.Lost, TIPWebITResource.Lost));
                //                                    //    actions.Enabled = true;
                //                                    //}
                //                                    break;
                //                                case UserRole.AdministrativeViewAdmin:
                //                                case UserRole.AdministrativeViewUser:
                //                                    using (RadComboBoxItem statusSeparator = new RadComboBoxItem(TIPWebITResource.ChangeStatusDivider))
                //                                    {
                //                                        actions.Items.Add(noActionCombo);
                //                                        statusSeparator.IsSeparator = true;
                //                                        actions.Items.Add(statusSeparator);
 
                //                                        actions.Items.Add(lostCombo);
                //                                        actions.Items.Add(stolenCombo);
                //                                        actions.Enabled = true;
                //                                    }
                //                                    break;
 
 
                //                            }
 
                //                            break;
                //                        case "Misplaced":
 
                //                            switch (user.UserRole)
                //                            {
                //                                case UserRole.SiteViewAdmin:
                //                                    //GET THE DISTRICT PREFERENCES THAT WILL AFFECT THE VIEW
                //                                    //if (this.SiteViewAdminRestrictReconcilingRoomAuditResults)
                //                                    //{
                //                                    //    // Item is checked
                //                                    //    actions.Visible = false;
                //                                    //    return;
                //                                    //}
                //                                    //using (RadComboBoxItem locationSeparator = new RadComboBoxItem(TIPWebITResource.ChangeLocationDivider))
                //                                    //{
                //                                    //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.NoAction, TIPWebITResource.NoAction));
                //                                    //    locationSeparator.IsSeparator = true;
                //                                    //    actions.Items.Add(locationSeparator);
                //                                    //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.Collect, TIPWebITResource.Collect));
                //                                    //    actions.Enabled = true;
                //                                    //}
 
                //                                    break;
                //                                case UserRole.SiteViewUser:
                //                                    //if (this.SiteViewUserRestrictReconcilingRoomAuditResults)
                //                                    //{
                //                                    //    // Item is checked
                //                                    //    actions.Visible = false;
                //                                    //    return;
                //                                    //}
                //                                    //using (RadComboBoxItem locationSeparator = new RadComboBoxItem(TIPWebITResource.ChangeLocationDivider))
                //                                    //{
                //                                    //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.NoAction, TIPWebITResource.NoAction));
                //                                    //    locationSeparator.IsSeparator = true;
                //                                    //    actions.Items.Add(locationSeparator);
                //                                    //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.Collect, TIPWebITResource.Collect));
                //                                    //    actions.Enabled = true;
                //                                    //}
                //                                    break;
                //                                case UserRole.AdministrativeViewAdmin:
                //                                case UserRole.AdministrativeViewUser:
                //                                    actions.Visible = false;
                //                                    actions.Enabled = false;
                //                                    //using (RadComboBoxItem locationSeparator = new RadComboBoxItem(TIPWebITResource.ChangeLocationDivider))
                //                                    //{
                //                                    //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.NoAction, TIPWebITResource.NoAction));
                //                                    //    locationSeparator.IsSeparator = true;
                //                                    //    actions.Items.Add(locationSeparator);
                //                                    //    actions.Items.Add(collectCombo);
                //                                    //    actions.Enabled = true;
 
 
 
                //                                    //}
                //                                    break;
 
                //                            }
 
                //                            break;
                //                        default:
                //                            actions.Visible = false;
                //                            actionLabel.Text = TIPWebITResource.Space;
                //                            actionLabel.Visible = true;
                //                            break;
                //                    }
                //                    #endregion
                //                }
                //            }
                //        }
                //    }
                //}
            }
        }
 
        private static void ConfigureradComboBoxActions(GridItemEventArgs e, Label LabelTagAuditState,
                                                        RadComboBox radComboBoxActions, User user, Label actionLabel)
        {
            GridDataItem item = (GridDataItem)e.Item;
            string auditDetailRoomUID = item.OwnerTableView.DataKeyValues[item.ItemIndex]["auditDetailRoomUID"].ToString();
            string auditDetailUID = item.OwnerTableView.DataKeyValues[item.ItemIndex]["auditDetailUID"].ToString();
            string tag = item.OwnerTableView.DataKeyValues[item.ItemIndex]["Tag"].ToString();
 
 
            string auditDetailUIDAndTag = string.Format(CultureInfo.InvariantCulture, "{0}|{1}|{2}", auditDetailUID,
                                                        auditDetailRoomUID, tag);
 
            //I am using the value in the combo's to pass an array of data I am using for my ajax web method.
            //Do not change the order unless you update the split code on the javascript side.
 
            //Note: Each combo VALUE must be unique (reported defect in RadComboBox) so I have appended the action to the
            //Note:   value (No Action, Lost, Stolen or Collect) to ensure they are unique via action.
 
            using (var noActionCombo = new RadComboBoxItem(TIPWebITResource.NoAction, auditDetailUIDAndTag + "|NoAction"))
            {
                //read comment above
                noActionCombo.ToolTip = TIPWebITResource.noActionComboToolTip;
 
                using (RadComboBoxItem lostCombo = new RadComboBoxItem(TIPWebITResource.Lost, auditDetailUIDAndTag + "|Lost"))
                {
                    //read comment above
                    lostCombo.ToolTip = TIPWebITResource.LostComboToolTip;
 
                    using (
                        RadComboBoxItem stolenCombo = new RadComboBoxItem(TIPWebITResource.Stolen,
                                                                          auditDetailUIDAndTag + "|Stolen"))
                    {
                        //read comment above
                        stolenCombo.ToolTip = TIPWebITResource.stolenComboToolTip;
 
                        using (
                            RadComboBoxItem collectCombo = new RadComboBoxItem(TIPWebITResource.Collect,
                                                                               auditDetailUIDAndTag + "|Collect"))
                        {
                            //read comment above
                            collectCombo.ToolTip = TIPWebITResource.collectComboToolTip;
 
                            #region
 
                            switch (LabelTagAuditState.Text)
                            {
                                case "Found":
                                    using (
                                        RadComboBoxItem statusSeparator =
                                            new RadComboBoxItem(TIPWebITResource.ChangeStatusDivider))
                                    {
                                        radComboBoxActions.Visible = false;
                                        radComboBoxActions.Enabled = false;
                                    }
                                    break;
                                case "Missing":
                                    switch (user.UserRole)
                                    {
                                        case UserRole.SiteViewAdmin:
                                            //GET THE DISTRICT PREFERENCES THAT WILL AFFECT THE VIEW
                                            //if (this.SiteViewAdminRestrictReconcilingRoomAuditResults)
                                            //{
                                            //    // Item is checked
                                            //    actions.Visible = false;
                                            //    return;
                                            //}
                                            //using (RadComboBoxItem statusSeparator = new RadComboBoxItem(TIPWebITResource.ChangeStatusDivider))
                                            //{
                                            //    actions.Items.Add(noActionCombo);
                                            //    statusSeparator.IsSeparator = true;
                                            //    actions.Items.Add(statusSeparator);
                                            //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.Lost, TIPWebITResource.Lost));
                                            //    actions.Enabled = true;
                                            //}
 
                                            break;
                                        case UserRole.SiteViewUser:
                                            //if (this.SiteViewUserRestrictReconcilingRoomAuditResults)
                                            //{
                                            //    // Item is checked
                                            //    actions.Visible = false;
                                            //    return;
                                            //}
                                            //using (RadComboBoxItem statusSeparator = new RadComboBoxItem(TIPWebITResource.ChangeStatusDivider))
                                            //{
                                            //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.NoAction, TIPWebITResource.NoAction));
                                            //    statusSeparator.IsSeparator = true;
                                            //    actions.Items.Add(statusSeparator);
                                            //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.Lost, TIPWebITResource.Lost));
                                            //    actions.Enabled = true;
                                            //}
                                            break;
                                        case UserRole.AdministrativeViewAdmin:
                                        case UserRole.AdministrativeViewUser:
                                            using (
                                                RadComboBoxItem statusSeparator =
                                                    new RadComboBoxItem(TIPWebITResource.ChangeStatusDivider))
                                            {
                                                radComboBoxActions.Items.Add(noActionCombo);
                                                statusSeparator.IsSeparator = true;
                                                radComboBoxActions.Items.Add(statusSeparator);
 
                                                radComboBoxActions.Items.Add(lostCombo);
                                                radComboBoxActions.Items.Add(stolenCombo);
                                                radComboBoxActions.Enabled = true;
                                                radComboBoxActions.Visible = true;
                                            }
                                            break;
                                    }
 
                                    break;
                                case "Misplaced":
 
                                    switch (user.UserRole)
                                    {
                                        case UserRole.SiteViewAdmin:
                                            //GET THE DISTRICT PREFERENCES THAT WILL AFFECT THE VIEW
                                            //if (this.SiteViewAdminRestrictReconcilingRoomAuditResults)
                                            //{
                                            //    // Item is checked
                                            //    actions.Visible = false;
                                            //    return;
                                            //}
                                            //using (RadComboBoxItem locationSeparator = new RadComboBoxItem(TIPWebITResource.ChangeLocationDivider))
                                            //{
                                            //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.NoAction, TIPWebITResource.NoAction));
                                            //    locationSeparator.IsSeparator = true;
                                            //    actions.Items.Add(locationSeparator);
                                            //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.Collect, TIPWebITResource.Collect));
                                            //    actions.Enabled = true;
                                            //}
 
                                            break;
                                        case UserRole.SiteViewUser:
                                            //if (this.SiteViewUserRestrictReconcilingRoomAuditResults)
                                            //{
                                            //    // Item is checked
                                            //    actions.Visible = false;
                                            //    return;
                                            //}
                                            //using (RadComboBoxItem locationSeparator = new RadComboBoxItem(TIPWebITResource.ChangeLocationDivider))
                                            //{
                                            //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.NoAction, TIPWebITResource.NoAction));
                                            //    locationSeparator.IsSeparator = true;
                                            //    actions.Items.Add(locationSeparator);
                                            //    actions.Items.Add(new RadComboBoxItem(TIPWebITResource.Collect, TIPWebITResource.Collect));
                                            //    actions.Enabled = true;
                                            //}
                                            break;
                                        case UserRole.AdministrativeViewAdmin:
                                        case UserRole.AdministrativeViewUser:
                                            using (
                                               RadComboBoxItem statusSeparator =
                                                   new RadComboBoxItem(TIPWebITResource.ChangeStatusDivider))
                                            {
                                                radComboBoxActions.Items.Add(noActionCombo);
                                                statusSeparator.IsSeparator = true;
                                                radComboBoxActions.Items.Add(statusSeparator);
 
                                                radComboBoxActions.Items.Add(collectCombo);
                                                radComboBoxActions.Enabled = true;
                                                radComboBoxActions.Visible = true;
                                            }
                                            break;
                                    }
 
                                    break;
                                default:
                                    radComboBoxActions.Visible = false;
                                    actionLabel.Text = TIPWebITResource.Space;
                                    actionLabel.Visible = true;
                                    break;
                            }
 
                            #endregion
                        }
                    }
                }
            }
        }
 
        protected void RadGridAudits_ItemCreated(object sender, GridItemEventArgs e)
        {
            if (e == null)
            {
                return;
            }
            if (e == null) return;
            //var user = (User)Session["currentUser"];
            //switch (user.UserRole)
            //{
            //case UserRole.SiteViewAdmin:
            //    ConfigureGridSiteViewAdmin(e.Item);
            //    break;
            //case UserRole.SiteViewUser:
            //    ConfigureGridSiteViewUser(e.Item);
            //    break;
            //case UserRole.AdministrativeViewAdmin:
            //    ConfigureGridAdministrativeViewAdmin(e.Item);
            //    break;
            //case UserRole.AdministrativeViewUser:
            //    ConfigureGridAdministrativeViewUser(e.Item);
            //    break;
 
            //}
        }
 
        protected void RadGridAudits_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
        {
            RadGridAudits.DataSource = GetAuditData();
        }
 
 
    }
 
}



0
Accepted
Boyan Dimitrov
Telerik team
answered on 27 Mar 2013, 11:59 AM
Hello,

It seems that the provided implementation for unchecking RadComboBox check boxes will not uncheck the "Check All" in some previous versions of our control. Therefore I would suggest adding the following line of code to your clearCheckedItems function as shown:
//JavaScript
function clearCheckedItems (combo) {
    var $ = $telerik.$;
    for (var i = 0; i < combo.get_items().get_count() ; i++) {
        combo.get_items().getItem(i).set_checked(false);
    }
    var checkAllCheckBox = $(".rcbCheckAllItemsCheckBox");
    checkAllCheckBox.attr("checked", false);
}


All the best,
Boyan Dimitrov
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Tags
ComboBox
Asked by
Wired_Nerve
Top achievements
Rank 2
Answers by
Wired_Nerve
Top achievements
Rank 2
Boyan Dimitrov
Telerik team
Share this question
or