Mar 22, 2023, 5:05 PM
[CLOSED] Linked combos
I am creating a linked combo. On the click of the combo other combo should be loaded. I was able to set the value. But, combo not showing the list. I have attached the project.
<ext-ComboBox ID="cmbOrg" EmptyText="Select Org" QueryMode="Local" Editable="false"
DisplayField="name" ValueField="id" FieldLabel="Org" ForceSelection="true"
Editable="false" Width="170" LabelWidth="40" Name="BaseOrganizationId">
<Store>
<ext-Store ID="stOrg" data="Model.BaseOrgComboSource">
<model>
<ext-model idProperty="ID">
<Fields>
<ext-dataField name="name" />
<ext-numberDataField name="id" />
</Fields>
</ext-model>
</model>
<proxy>
<ext-memoryProxy>
<reader>
<ext-arrayReader />
</reader>
</ext-memoryProxy>
</proxy>
</ext-Store>
</Store>
<Listeners>
<Select Handler="OncmbOrgSelect();" />
</Listeners>
</ext-ComboBox>
<ext-ToolbarSeparator />
<ext-ComboBox ID="cmbPlant" EmptyText="Select Plant" QueryMode="Local" Editable="false"
DisplayField="name" ValueField="id" FieldLabel="Plant" triggerAction="All"
Editable="false" Width="170" LabelWidth="40" Name="BasePlantId">
<Store>
<ext-Store ID="stPlant" data="Model.BasePlantComboSource" autoLoad="false">
<model>
<ext-model idProperty="id">
<Fields>
<ext-numberDataField name="id" />
<ext-dataField name="name" />
</Fields>
</ext-model>
</model>
<proxy>
<ext-memoryProxy>
<reader>
<ext-arrayReader />
</reader>
</ext-memoryProxy>
</proxy>
</ext-Store>
</Store>
</ext-ComboBox>
Javascriptvar OncmbOrgSelect = function () {
App.cmbPlant.clearValue();
$.ajax({
url: '@Url.Action("GetPlants", "Base")',
type: "get",
cache: false,
data: { orgId: App.cmbOrg.getValue() },
complete: function (response) {
//debugger;
var combo = App.cmbPlant;
if (response.responseJSON != undefined && response.responseJSON.length > 0) {
combo.getStore().setData(response.responseJSON);
combo.setValue(response.responseJSON[0][0]);
} else {
combo.getStore().loadData([]);
}
}
});
};
public IActionResult GetPlants(int orgId)
{
List<object> plantData = new List<object>()
{
new object[] { "3m Co", 71 },
new object[] { "Alcoa Inc", 29 },
new object[] { "Altria Group Inc", 83 },
new object[] { "American Express Company", 52 }
};
return Json(plantData);
}
public List<object> OrgData()
{
List<object> orgData = new List<object>() {
new object[] { "American International Group, Inc.", 64 },
new object[] { "AT&T Inc.", 31 },
new object[] { "Boeing Co.", 75 },
new object[] { "Caterpillar Inc.", 67 }
};
return orgData;
}
public List<object> BasePlantComboSource { get; set; }
public List<object> BaseOrgComboSource { get; set; }
Last edited by fabricio.murta; Apr 04, 2023 at 7:52 PM.