Dec 13, 2012, 1:52 PM
[CLOSED] How to set default value on remote combobox
Often times I have comboboxes on a form where the store is loaded remotely when user clicks the dropdown trigger on the combobox. On page load, I want to populate those comboboxes with default values. In Ext 1.0, this isn't an issue because I can set the EmptyText to my display value and set the combobox value to the default value. In Ext 2.0, the value doesn't get set because store is empty.
Here's your Ajax Example and I am trying to set SelectedItem on PageLoad. It works fine for the local combobox but not for the remote combobox.
Here's your Ajax Example and I am trying to set SelectedItem on PageLoad. It works fine for the local combobox but not for the remote combobox.
<%@ Import Namespace="Ext.Net" %>
<%@ Import Namespace="Ext.Net.Utilities" %>
<%@ Import Namespace="System.Linq" %>
<%@ Import Namespace="System.Xml.Linq" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack AndAlso Not Ext.Net.ExtNet.IsAjaxRequest Then
Me.ComboBox1.SelectedItem.Value = "BR"
Me.ComboBox2.SelectedItem.Value = "4"
Me.ComboBox2.SelectedItem.Text = "City 4"
End If
End Sub
Protected Sub CitiesRefresh(sender As Object, e As StoreReadDataEventArgs)
Dim data = New Generic.List(Of Object)
For i As Integer = 0 To 10
data.Add(New With {.Id = i.ToString(), .Name = "City " & i})
Next
Me.CitiesStore.DataSource = data
Me.CitiesStore.DataBind()
End Sub
</script>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
</head>
<body>
<form id="Form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" ScriptMode="Debug" Theme="Gray"
DisableViewState="true" />
<ext:ComboBox ID="ComboBox1" runat="server" Editable="false" TypeAhead="true" QueryMode="Local"
ForceSelection="true" TriggerAction="All" SelectOnFocus="true" EmptyText="Select a country">
<Listeners>
<Select Handler="#{ComboBox2}.clearValue(); #{CitiesStore}.reload();" />
</Listeners>
<Items>
<ext:ListItem Text="Belgium" Value="BE" />
<ext:ListItem Text="Brazil" Value="BR" />
<ext:ListItem Text="Bulgaria" Value="BG" />
<ext:ListItem Text="Canada" Value="CA" />
<ext:ListItem Text="Chile" Value="CL" />
<ext:ListItem Text="Cyprus" Value="CY" />
<ext:ListItem Text="Finland" Value="FI" />
<ext:ListItem Text="France" Value="FR" />
<ext:ListItem Text="Germany" Value="DE" />
<ext:ListItem Text="Hungary" Value="HU" />
<ext:ListItem Text="Ireland" Value="IE" />
<ext:ListItem Text="Israel" Value="IL" />
<ext:ListItem Text="Italy" Value="IT" />
<ext:ListItem Text="Lithuania" Value="LT" />
<ext:ListItem Text="Mexico" Value="MX" />
<ext:ListItem Text="Netherlands" Value="NL" />
<ext:ListItem Text="New Zealand" Value="NZ" />
<ext:ListItem Text="Norway" Value="NO" />
<ext:ListItem Text="Pakistan" Value="PK" />
<ext:ListItem Text="Poland" Value="PL" />
<ext:ListItem Text="Romania" Value="RO" />
<ext:ListItem Text="Slovakia" Value="SK" />
<ext:ListItem Text="Slovenia" Value="SI" />
<ext:ListItem Text="Spain" Value="ES" />
<ext:ListItem Text="Sweden" Value="SE" />
<ext:ListItem Text="Switzerland" Value="CH" />
<ext:ListItem Text="United Kingdom" Value="GB" />
</Items>
</ext:ComboBox>
<ext:ComboBox ID="ComboBox2" runat="server" TypeAhead="true" QueryMode="Local" ForceSelection="true"
TriggerAction="All" DisplayField="name" ValueField="id" EmptyText="Loading..."
ValueNotFoundText="Loading...">
<Store>
<ext:Store runat="server" ID="CitiesStore" AutoLoad="false" OnReadData="CitiesRefresh">
<Model>
<ext:Model ID="Model1" runat="server" IDProperty="Id">
<Fields>
<ext:ModelField Name="id" Type="String" Mapping="Id" />
<ext:ModelField Name="name" Type="String" Mapping="Name" />
</Fields>
</ext:Model>
</Model>
<Listeners>
<Load Handler="#{ComboBox2}.setValue(#{ComboBox2}.store.getAt(0).get('id'));" />
</Listeners>
</ext:Store>
</Store>
</ext:ComboBox>
</form>
</body>
</html>
Last edited by Daniil; Apr 02, 2013 at 4:13 AM.
Reason: [CLOSED]