
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...
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
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
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
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...
CODE CODE
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
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
All the best,
Boyan Dimitrov
the Telerik team
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.