Andrew Mystery

Andrew Mystery

  • NA
  • 9
  • 4.4k

ASP.Net and JavaScript window drop-down list specific method

Nov 23 2015 1:21 PM
Hello all,
I am currently working with a ASP.Net and JavaScript window.
Now I currently have a javascript script run creating a popup window that has multiple controls. Dropdown lists, buttons, etc.
I am trying to have it so when you select a certain option in the dropdown list that it will call a certain method in my separate controller class.
Here is what I have – I have been trying multiple methods to make this work so far but had not yet had luck-
Here is the current code –

//JAVASCRIPT POPUP WINDOW CLASS CONTROLS ETC

var driverId = 0;

var vehicleId = 0;

var typeId = 0;

var customerId = 0;

var sDate;

var eDate;

var sDateDef = new Date('1/1/1970');//.toDateString();

var eDateDef = new Date('12/31/2999');//.toDateString();

var driverStore = new Ext.data.Store({

proxy: new Ext.data.HttpProxy({

url: '/Reporting/GetDrivers',

method: 'GET'

}),

reader: new Ext.data.JsonReader(

{ root: 'data', id: 'id' },

[{ name: 'Value' }, { name: 'Text' }]

),

autoLoad: true

});

var vehicleStore = new Ext.data.Store({

proxy: new Ext.data.HttpProxy({

url: '/Reporting/GetVehicles’,

method: 'GET'

}),

reader: new Ext.data.JsonReader(

{ root: 'data', id: 'id' },

[{ name: 'Value' }, { name: 'Text' }]

),

autoLoad: true

});

var typeStore = new Ext.data.Store({

proxy: new Ext.data.HttpProxy({

url: '/Reporting/GetInsurance’,

method: 'GET'

}),

reader: new Ext.data.JsonReader(

{ root: 'data', id: 'id' },

[{ name: 'Value' }, { name: 'Text' }]

),

autoLoad: true

});

Ext.onReady(function () {

Ext.QuickTips.init();

var xg = Ext.grid;

function handleResize() {

var width = window.innerWidth;

var height = window.innerHeight;

if (width == null) {

width = document.documentElement.clientWidth;

height = document.documentElement.clientHeight;

}

if (width == 0) {

width = document.body.clientWidth;

height = document.body.clientHeight;

}

grid.setHeight(height - 185);

}

window.onload = handleResize;

window.onresize = handleResize;

var reader = new Ext.data.JsonReader({

idProperty: 'taskId',

root: 'data',

fields: [

{ name: 'vehicle', type: 'string' },

{ name: 'period', type: 'string' },

{ name: 'hours', type: 'float' },

{ name: 'average', type: 'float' },

{ name: 'ridesCount', type: 'int' },

{ name: 'date', type: 'date', dateFormat: 'm/d/Y' }

]

});

var grid = new xg.EditorGridPanel({

ds: new Ext.data.GroupingStore({

reader: reader,

proxy: new Ext.data.HttpProxy({

api: {

read: '/Reporting/GetEmployeeHours?driverId=' + driverId

+ '&sDate=' + sDate + ''

+ '&eDate=' + eDate + ''

}

}),

autoLoad: false,

sortInfo: { field: 'date', direction: 'ASC' },

groupField: 'vehicle'

}),

columns: [

],

tbar:

[{

xtype: 'label',

style: 'margin-right:5px;margin-left:3px;',

text: 'Driver'

}, {

id: 'DriverId',

xtype: 'combo',

width: 160,

displayField: 'Text',

valueField: 'Value',

emptyText: 'Select a Driver...',

hiddenName: 'Driverid',

forceSelection: true,

triggerAction: 'all',

mode: 'local',

store: driverStore

}, {

xtype: 'label',

style: 'margin-right:5px;margin-left:3px;',

text: 'Insurance'

}, {

id: 'TypeId',

xtype: 'combo',

width: 250,

displayField: 'Text',

valueField: 'Value',

emptyText: 'Select a Type...',

hiddenName: 'TypeId',

forceSelection: true,

triggerAction: 'all',

mode: 'local',

store: typeStore

}, {

xtype: 'label',

style: 'margin-right:5px;margin-left:3px;',

text: 'Vehicle'

}, {

id: 'VehicleId',

xtype: 'combo',

width: 160,

displayField: 'Text',

valueField: 'Value',

emptyText: 'Select a Vehicle...',

hiddenName: 'VehicleId',

forceSelection: true,

triggerAction: 'all',

mode: 'local',

store: vehicleStore

}, {

xtype: 'label',

style: 'margin:0px 5px 0px 5px;',

text: 'Period'

}, {

xtype: 'datefield',

id: 'txtStartDate',

name: 'txtStartDate',

width: 100

}, {

xtype: 'label',

style: 'margin:0px 3px 0px 3px;',

text: '-'

}, {

xtype: 'datefield',

name: 'txtEndDate',

id: 'txtEndDate',

width: 100

}, {

xtype: 'label',

style: 'margin-right:5px;margin-left:3px',

text: 'Format'

}, {

//THIS IS WHERE I WANT THE SELECTION TO CHOOSE A METHOD IN THE CONTROLLER

id: 'FormatId',

xtype: 'combo',

width: 140,

displayField: 'Text',

valueField: 'Value',

emptyText: 'Default',

hiddenName: 'FormatId',

forceSelection: true,

triggerAction: 'all',

mode: 'local',

store: formatStore

{

xtype: 'button',

id: 'printxls',

text: 'Export',

style: 'margin-left:5px;',

handler: function () {

driverId = !Ext.getCmp("DriverId").value ? 0 : Ext.getCmp("DriverId").value;

vehicleId = !Ext.getCmp("VehicleId").value ? 0 : Ext.getCmp("VehicleId").value;

typeId = !Ext.getCmp("TypeId").value ? 0 : Ext.getCmp("TypeId").value;

sDate = !Ext.getCmp("txtStartDate").getValue() ? sDateDef : Ext.getCmp("txtStartDate").getValue();

eDate = !Ext.getCmp("txtEndDate").getValue() ? eDateDef : Ext.getCmp("txtEndDate").getValue();

var sMsg = [];

if (driverId == 0) { sMsg.push(" - driver"); }

if (typeId == 0) { sMsg.push(" - insurance"); }

if (sDate <= sDateDef) { sMsg.push(" - period start date"); }

if (eDate >= eDateDef) { sMsg.push(" - period end date"); }

if (sMsg.length != 0) {

Ext.MessageBox.alert('Attention!', 'The following are missing:<br/><br/>' + sMsg.join('<br />'));

return;

}

document.getElementById("driverId").setAttribute("value", driverId);

document.getElementById("vehicleId").setAttribute("value", vehicleId);

document.getElementById("typeId").setAttribute("value", typeId);

document.getElementById("sDate").setAttribute("value", sDate.toDateString());

document.getElementById("eDate").setAttribute("value", eDate.toDateString());

document.forms["spreadsheetForm"].submit();

}

}],

frame: true,

width: '100%',

clicksToEdit: 1,

animCollapse: false,

trackMouseOver: false,

renderTo: 'maincontaindiv'

});

handleResize();

});

// set up namespace for application

Ext.ns('app.grid');

//ASP.NET CONTROLLER WHERE THE METHODS I WANT TO CALL ARE LOCATED

//WHEN BUTTON IS CLICKED THIS METHOD IS CALLED

[HttpPost]

[Authorize(Roles = RoleAdmin + "," + RoleBilling + "," + RoleBillingDocument)]

public ActionResult GenerateTripLog(int driverId, int vehicleId, int typeId, int customerId, DateTime sDate, DateTime eDate)

{

try

{

var results = (from s in db.usp_TripLog(driverId, vehicleId, typeId, customerId, sDate, eDate)

select s).ToList();

var driver = new DriverRepository(GetCurrentUser()).GetDriver(driverId);

var iType = db.insurancetypes.SingleOrDefault(c => c.id == typeId);

var tenant = GetTenant(GetCurrentUser());

var period = "All";

if (DateTime.Compare(sDate, new DateTime(1970, 1, 1)) != 0 || DateTime.Compare(eDate, new DateTime(2099, 12, 31)) != 0)

period = sDate.ToShortDateString() + " to " + eDate.ToShortDateString();

var driverSignature =

(from s in driver.driveravailabilityevents

where

s.eventtime.Date.Equals(eDate.Date)

&& (s.eventtypeid == 9 || s.eventtypeid == 10) // Punch out or No Work

orderby s.createdon descending

select s.signature).FirstOrDefault();

object[] filterStrs =

{

tenant == null ? "All" : tenant.tenantname,

period,

driver == null || driver.person == null ? "All" : driver.person.fullname,

iType == null ? "All" : iType.name,

driverSignature

};

//THIS IF STATEMENT IS WHAT I WANT THE DROPDOWNLIST TO DECIDE WHAT IS CALLED INSTEAD OF WHAT IS CURRENTLY SETUP LIKE THIS BELOW

string insuranceType = Convert.ToString(iType);

string mtmString = "";

string logicstr = "";

string accessStr = "";

if (insuranceType.Length > 2) mtmString = insuranceType.Substring(0, 3);

if (insuranceType.Length > 10) logicstr = insuranceType.Substring(0, 11);

if (insuranceType.Length > 10) accessStr = insuranceType.Substring(0, 13);

if (logicstr == "Logisticare" || logicstr == "LogistCare" || logicstr == "LogistiCare" || logicstr == "LOGISTICARE")

{

return TripLogSpreadsheet(results, filterStrs);

}

else if (mtmString.ToUpper() == "MTM")

{

return MTMLogSpreadsheet(results, filterStrs);

}

else if (accessStr == "Access 2 Care" || logicstr == "Access2Care" || logicstr == "Access2care" || accessStr == "Access 2 care" || mtmString.ToUpper() == "A2C" || mtmString == "A2c")

{

return Access2CareLogSpreadsheet(results, filterStrs);

}

else

return TripLogSpreadsheet(results, filterStrs);

// return MTMLogSpreadsheet(results, filterStrs);

// return Access2CareLogSpreadsheet(results, filterStrs);

}

catch (Exception ex)

{

ViewData["errormessage"] = ex.Message;

return View("Error");

}

}

[Authorize(Roles = RoleAdmin + "," + RoleBilling + "," + RoleBillingDocument)]

private ActionResult TripLogSpreadsheet(List<usp_TripLogResult> list, object[] filterStrs)

{

const int colRideDate = 0;

const int colJobNum = 1;

const int colMemberName = 2;

const int colAWS = 3;

const int colRNS = 4;

const int colPickupTime = 5;

const int colDropoffTime = 6;

const int colWillCallTime = 7;

const int colTotalTripMileage = 8;

const int colWaitTime = 9;

const int colBilledAmount = 10;

sheet.GetRow(rowTenant).GetCell(8).SetCellValue(filterStrs[1].ToString()); // Ride Dates

sheet.GetRow(rowDriverSignature).GetCell(2).SetCellValue(filterStrs[2].ToString()); // Driver Name

//sheet.GetRow(rowDriver).GetCell(3).SetCellValue(filterStrs[2]); // Driver Name

IRow template_row = sheet.GetRow(start_row);

var row_index = start_row;

foreach (var record in list)

{

if (row_index == start_row && !String.IsNullOrEmpty(record.VIN) && record.VIN.Length >= vinLength)

{

sheet.GetRow(rowDriver).GetCell(8).SetCellValue(record.VIN.Substring(record.VIN.Length - vinLength)); // Vehicle number VIN

}

sheet.ShiftRows(row_index + 1, last_row, 1);

IRow hRow = sheet.CreateRow(row_index);

hRow.Height = template_row.Height;

{

ICell hCell = hRow.CreateCell(colRideDate, CellType.STRING);

hCell.CellStyle = template_row.GetCell(colRideDate).CellStyle;

hCell.SetCellValue(!String.IsNullOrEmpty(Convert.ToString(record.RideDate)) ? Convert.ToString(record.RideDate.ToString("MM/dd/yyyy")) : String.Empty);

}

{

ICell hCell = hRow.CreateCell(colJobNum, CellType.STRING);

hCell.CellStyle = template_row.GetCell(colJobNum).CellStyle;

hCell.SetCellValue(!String.IsNullOrEmpty(record.InsuranceAuthNumber) ? record.InsuranceAuthNumber : String.Empty);

}

}

sheet.ForceFormulaRecalculation = true;

var memoryStream = new MemoryStream();

wk.Write(memoryStream);

return File(memoryStream.ToArray(), "application/vnd.ms-excel", "trip_log.xls");

}


Answers (1)