Here are my stores/data sources:
<asp:ObjectDataSource ID="dsJobClassList" runat="server" SelectMethod="GetJobClassList"
TypeName="UOttawa.BusinessObjects.ConfigListCollection"
OldValuesParameterFormatString="original_{0}" >
</asp:ObjectDataSource>
<ext:Store ID="stoJobClassList" runat="server" DataSourceID="dsJobClassList">
<Reader>
<ext:JsonReader ReaderID="CodeName">
<Fields>
<ext:RecordField Name="CodeName" />
<ext:RecordField Name="CodeValue" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<asp:ObjectDataSource ID="dsEditRateType" runat="server" SelectMethod="GetRateTypeListByJobClass"
TypeName="UOttawa.BusinessObjects.ConfigListCollection"
OldValuesParameterFormatString="original_{0}" >
<SelectParameters>
<asp:Parameter DefaultValue="" Name="JobClassCode" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<ext:Store ID="stoEditRateType" runat="server" DataSourceID="dsEditRateType" OnRefreshData="LoadEditRateType">
<Reader>
<ext:JsonReader ReaderID="CodeName">
<Fields>
<ext:RecordField Name="CodeName" />
<ext:RecordField Name="CodeValue" />
</Fields>
</ext:JsonReader>
</Reader>
<Listeners>
<Load Handler="if(this.getAt(0)!=null)#{cbRateType}.setValue(this.getAt(0).data[#{cbJobClass}.valueField]);" />
</Listeners>
</ext:Store>
Here is the XML source markup:
<ext:Anchor>
<ext:ComboBox
ID="cbJobClass"
runat="server"
StoreID="stoJobClassList"
FieldLabel="Job Class"
Width="220"
Editable="true"
DisplayField="CodeValue"
ValueField="CodeName"
TypeAhead="true"
Mode="Local"
ForceSelection="true"
TriggerAction="All"
EmptyText="Select..."
SelectOnFocus="true">
<Listeners>
<Select Handler="#{cbRateType}.clearValue();#{stoEditRateType}.reload();" />
</Listeners>
</ext:ComboBox>
</ext:Anchor>
<ext:Anchor>
<ext:ComboBox
ID="cbRateType"
runat="server"
StoreID="stoEditRateType"
FieldLabel="Rate Type"
Width="220"
Editable="true"
DisplayField="CodeValue"
ValueField="CodeName"
TypeAhead="true"
Mode="Local"
ForceSelection="true"
TriggerAction="All"
EmptyText="Select..."
SelectOnFocus="true">
</ext:ComboBox>
</ext:Anchor>
and the code-behind:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If (Ext.IsAjaxRequest = False) Then
btnDeleteRow.Enabled = False
End If
End Sub
Protected Sub RowSelect(ByVal sender As Object, ByVal e As AjaxEventArgs)
Me.lblStatus.Html = ""
Dim _strRowID As String = e.ExtraParams("RowID")
LoadItem(e.ExtraParams("JobClassRatesID"))
End Sub
Protected Sub LoadItem(ByVal JobClassRatesID As Long)
Dim _col As JobClassRateCollection = New JobClassRateCollection()
Dim item As JobClassRate = _col.FindByID(JobClassRatesID)
Me.txtJobClassRatesID.Text = item.JobClassRatesID
'Me.cbJobClass.SetValue(item.JobClassCode)
Me.cbJobClass.SelectedItem.Value = item.JobClassCode
LoadEditRateType(Me, Nothing)
'Me.cbRateType.SetValue(item.RateCode)
Me.cbRateType.SelectedItem.Value = item.RateCode
Me.cbRateType.SetValue(item.RateCode)
Me.txtStartDate.SelectedDate = item.StartDate
Me.txtEndDate.SelectedDate = item.EndDate
Me.txtRegularRate.Text = Common.FormatCurrency(Convert.ToDouble(item.RegularRate))
Me.txtVacationRate.Text = Common.FormatCurrency(Convert.ToDouble(item.VacationRate))
Me.lblUpdateUserID.Text = item.UpdateUserID
Me.lblUpdateTimestamp.Text = Common.GetMidDate(item.UpdateTimestamp) + " " + Common.GetTime(item.UpdateTimestamp)
End Sub
Protected Sub LoadEditRateType(ByVal sender As Object, ByVal e As StoreRefreshDataEventArgs)
dsEditRateType.SelectParameters("JobClassCode").DefaultValue = Me.cbJobClass.SelectedItem.Value
dsEditRateType.DataBind()
End Sub