I am trying to maintain state in my asp.net wizard that uses knockout with hidden fields. I am saving my textbox and DDL user selected value to hidden fields on the page. When the user traverses back to this webpage, I am using hidden fields to populate the controls back to previously selected values.
Problem : I am able to Populate UI textbox Fields(Control ID - BasicSwitchName) with previously selected values but not with any DDL Controls(Control ID - BasicSwitchManufacturer) except when I use an alert in between.
**Knockout **
var Hardware = function (name, manufacturerID)
{
var self = this;
self.name = ko.observable(name);
self.manufacturerID = ko.observable(manufacturerID);
}
self.currentHardware = ko.observable(new Hardware(1));
Populating UI Controls
<input type="text" id="BasicSwitchName" data-bind="value: currentHardware().name" />
<select id="BasicSwitchManufacturer"
data-bind=" options: $root.allManufacturers, optionsText: 'name',
value: currentHardware().manufacturerID, optionsValue: 'manufacturerID',
optionsCaption: 'Select Manufacturer..'" >
**UI** and Populating Previously selected values.
$(document).ready(function () {
PopulateEnteredInfo();
**//Alert that is making it work.**
alert('Please Ensure - Basic Hardware Functionality !!');
}
var PopulateEnteredInfo = function()
{
//Getting value of Hidden Field-hidName to populate KO.observable.
if ($("#hidName").val() != "Hidden Field")
appViewModel.currentHardware().name($("#hidName").val());
//Getting value of Hidden Field-hidManufacturerID to populate KO.observable.
if ($("#hidManufacturerID").val() != "Hidden Field")
{
var manufacturerID = $('#hidManufacturerID').val();
appViewModel.currentHardware().manufacturerID(manufacturerID);
}
}