刷新后如何保持下拉选择
how to keep dropdown selected after refresh
我试图在重新加载页面后保留所选项目
这是我的下拉列表
刷新后是这样的
我将此代码用于加载下拉列表
<select
data-bind="value:SelectedOrganisationData,
options: GridAllOrganisationDataList,
event: { change: tanantNameSelect } ,
optionsText:'TenantName',optionsCaption: 'Choose your organisation ...',
optionsId:'SelectTenantName'"
class="dropdown">
</select>
function tanantNameSelect() {
var data = PayrollIntegrationVM.SelectedOrganisationData().TenantName;
DisplayMessage(data);
}
使用这个脚本我可以获得选定的值,
如果需要在重新加载页面后保留数据,则必须将选择的值保存到数据库中,并在用户重新加载页面时获取该值。
对我来说,您似乎已经完成了大部分工作。您只需要设置选定的组织名称。
var data = [
{id: 1, name: 'Test1'},
{id: 2, name: 'Test2'},
{id: 3, name: 'Test3'},
{id: 4, name: 'Test4'},
{id: 5, name: 'Test5'}
]
function ViewModel(){
var self = this;
self.selectedOption = ko.observable();
self.availableOptions = ko.observableArray(data);
self.setSelectedOption = function(item){
self.selectedOption(item);
}
}
var viewModel = new ViewModel()
ko.applyBindings(viewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<select data-bind="options: availableOptions, optionsText: 'name', optionsId:'id', value: selectedOption"></select>
<br/>
<h3>Press button to set the selection</h3>
<ul data-bind="foreach: availableOptions">
<li><button data-bind="text: name, click: $parent.setSelectedOption"></button></li>
</ul>
<pre data-bind="text: ko.toJSON($root)"></pre>
即使刷新页面也能保存数据的唯一方法是:
将您想要的数据保存在数据库中。这样,当您刷新页面时,数据仍然存在。
谢谢。希望对你有帮助:)它对我也有帮助。
另一个答案是制作 ajax post 而不是完整的 post。这样您选择的项目将保持选中状态。 Ajax 不刷新页面,只刷新页面需要刷新的部分。
我试图在重新加载页面后保留所选项目
这是我的下拉列表
刷新后是这样的
我将此代码用于加载下拉列表
<select
data-bind="value:SelectedOrganisationData,
options: GridAllOrganisationDataList,
event: { change: tanantNameSelect } ,
optionsText:'TenantName',optionsCaption: 'Choose your organisation ...',
optionsId:'SelectTenantName'"
class="dropdown">
</select>
function tanantNameSelect() {
var data = PayrollIntegrationVM.SelectedOrganisationData().TenantName;
DisplayMessage(data);
}
使用这个脚本我可以获得选定的值,
如果需要在重新加载页面后保留数据,则必须将选择的值保存到数据库中,并在用户重新加载页面时获取该值。
对我来说,您似乎已经完成了大部分工作。您只需要设置选定的组织名称。
var data = [
{id: 1, name: 'Test1'},
{id: 2, name: 'Test2'},
{id: 3, name: 'Test3'},
{id: 4, name: 'Test4'},
{id: 5, name: 'Test5'}
]
function ViewModel(){
var self = this;
self.selectedOption = ko.observable();
self.availableOptions = ko.observableArray(data);
self.setSelectedOption = function(item){
self.selectedOption(item);
}
}
var viewModel = new ViewModel()
ko.applyBindings(viewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<select data-bind="options: availableOptions, optionsText: 'name', optionsId:'id', value: selectedOption"></select>
<br/>
<h3>Press button to set the selection</h3>
<ul data-bind="foreach: availableOptions">
<li><button data-bind="text: name, click: $parent.setSelectedOption"></button></li>
</ul>
<pre data-bind="text: ko.toJSON($root)"></pre>
即使刷新页面也能保存数据的唯一方法是: 将您想要的数据保存在数据库中。这样,当您刷新页面时,数据仍然存在。 谢谢。希望对你有帮助:)它对我也有帮助。
另一个答案是制作 ajax post 而不是完整的 post。这样您选择的项目将保持选中状态。 Ajax 不刷新页面,只刷新页面需要刷新的部分。