Dec 13, 2010, 3:32 PM
[CLOSED] Setting Combobox value in code behind
I'm trying to set the selected item value for a combobox in code behind with limited success. I'm able to set some values, but not others. The product and rate card seem to be selecting properly, though the ad size is not. Please take a look and the following code sample and let me know what I'm missing. Thank you.
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<ext:ScriptManager ID="ScriptManager1" runat="server" />
<ext:TextField runat="server" ID="txtItemID" Hidden="true" HideMode="Display" Text="-1"></ext:TextField>
<ext:Store ID="store_Product" runat="server" AutoLoad="true">
<Reader>
<ext:ArrayReader ReaderID="ID">
<Fields>
<ext:RecordField Name="ID" Type="String" />
<ext:RecordField Name="DropDownDisplay" Type="String" />
</Fields>
</ext:ArrayReader>
</Reader>
<Listeners>
<Load Handler="if(this.initialized || !this.withPredefined){ #{cbo_Product}.setValue(this.getAt(0).data[#{cbo_Product}.valueField]);#{store_RateCard}.reload();};this.initialized = true;"
Single="false" />
</Listeners>
</ext:Store>
<ext:Store ID="store_RateCard" runat="server" AutoLoad="false" OnRefreshData="LoadRCardList">
<Reader>
<ext:ArrayReader ReaderID="ID">
<Fields>
<ext:RecordField Name="ID" Type="String" />
<ext:RecordField Name="DropDownDisplay" Type="String" />
<ext:RecordField Name="IsNet" Type="String" />
</Fields>
</ext:ArrayReader>
</Reader>
<Listeners>
<Load Handler="if(this.initialized || !this.withPredefined){#{cbo_RateCard}.setValue(#{cbo_RateCard}.store.getAt(0).get('ID'));#{StoreAdSizePrint}.reload();}; this.initialized = true;" />
</Listeners>
</ext:Store>
<ext:Store runat="server"
ID="StoreAdSizePrint" OnRefreshData="LoadAdDetails">
<Reader>
<ext:ArrayReader ReaderID="ID">
<Fields>
<ext:RecordField Name="ID" Type="String"/>
<ext:RecordField Name="DropDownDisplay" Type="String" />
</Fields>
</ext:ArrayReader>
</Reader>
<Listeners>
<Load Handler="if(this.initialized || !this.withPredefined){#{cboAdSize}.setValue(#{cboAdSize}.store.getAt(0).get('ID'));};this.initialized = true; " />
</Listeners>
</ext:Store>
<ext:ViewPort ID="ViewPort1" runat="server">
<Body>
<ext:CenterLayout ID="CenterLayout1" runat="server">
<ext:Panel ID="PanelProduct"
runat="server"
Title="Centered Panel: 75% of container width and fit height"
AutoScroll="true"
BodyStyle="padding:20px 0;">
<CustomConfig>
<ext:ConfigItem Name="width" Value="75%" Mode="Value" />
</CustomConfig>
<Body>
<ext:FormLayout ID="FormLayoutCampaign" runat="server" LabelAlign="Left" LabelWidth="65" LabelSeparator="">
<ext:Anchor>
<ext:ComboBox ID="cbo_Product" runat="server"
FireSelectOnLoad="true"
StoreID="store_Product"
TypeAhead="true"
Mode="Local"
ForceSelection="true"
TriggerAction="All"
DisplayField="DropDownDisplay"
ValueField="ID"
EmptyText="Select a Product..."
FieldLabel="Product:"
Width="400">
<Listeners>
<Select Handler="cbo_RateCard.clearValue();store_RateCard.reload();" />
</Listeners>
</ext:ComboBox>
</ext:Anchor>
<ext:Anchor>
<ext:ComboBox ID="cbo_RateCard" runat="server"
Width="400"
StoreID="store_RateCard"
TypeAhead="true"
Mode="Local"
ForceSelection="True"
TriggerAction="All"
DisplayField="DropDownDisplay"
FireSelectOnload="True"
ValueField="ID"
FieldLabel="Rate Card:"
EmptyText="Select a Rate Card...">
<Listeners>
<Select Handler="#{StoreAdSizePrint}.reload();this.initialized = true;" />
</Listeners>
</ext:ComboBox>
</ext:Anchor>
<ext:Anchor>
<ext:ComboBox ID="cboAdSize" runat="server" StoreID="StoreAdSizePrint" FieldLabel="Ad Size" Width="200" DisplayField="DropDownDisplay" ValueField="ID" >
</ext:ComboBox>
</ext:Anchor>
</ext:FormLayout>
</Body>
</ext:Panel>
</ext:CenterLayout>
</Body>
</ext:ViewPort>
</div>
</form>
</body>
</html>
Imports Coolite.Ext.Web
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
store_Product.CustomConfig.Add(New ConfigItem("withPredefined", "true", ParameterMode.Raw))
store_RateCard.CustomConfig.Add(New ConfigItem("withPredefined", "true", ParameterMode.Raw))
SetupAd()
End If
If Not Ext.IsAjaxRequest Then
GetProductList()
End If
End Sub
Public Sub SetupAd()
'set the selected product and rate card for the drop down lists
cbo_Product.SelectedItem.Value = 17
cbo_RateCard.SelectedItem.Value = 172
StoreAdSizePrint.CustomConfig.Add(New ConfigItem("withPredefined", "true", ParameterMode.Raw))
cboAdSize.SelectedItem.Value = 1722
End Sub
Public Sub GetProductList()
store_Product.DataSource = New Object() {New Object() {1, "Product 1"}, _
New Object() {17, "Product 17"}, _
New Object() {21, "Product 21"}}
store_Product.DataBind()
End Sub
Public Sub LoadRCardList()
'Refresh rate card data - id,name,isnet,startdate,enddate
Select Case cbo_Product.SelectedItem.Value 'txtProductID.Text 'product
Case 1
store_RateCard.DataSource = New Object() {New Object() {11, "Product 1 Rate 1", 1}, _
New Object() {12, "Product 1 Rate 2", 1}}
Case 17
store_RateCard.DataSource = New Object() {New Object() {171, "Product 17 Rate 1", 0}, _
New Object() {172, "Product 17 Rate 2", 0}}
End Select
store_RateCard.DataBind()
End Sub
Public Sub LoadAdDetails() 'Ratecard selected
Select Case cbo_RateCard.SelectedItem.Value 'txtRateCardID.Text
Case 11
StoreAdSizePrint.DataSource = New Object() {New Object() {111, "Rate 11 Size 1"}, _
New Object() {112, "Rate 11 Size 2"}}
Case 12
StoreAdSizePrint.DataSource = New Object() {New Object() {121, "Rate 12 Size 1"}, _
New Object() {122, "Rate 12 Size 2"}}
Case 171
StoreAdSizePrint.DataSource = New Object() {New Object() {1711, "Rate 171 Size 1"}, _
New Object() {1712, "Rate 171 Size 2"}}
Case 172
StoreAdSizePrint.DataSource = New Object() {New Object() {1721, "Rate 172 Size 1"}, _
New Object() {1722, "Rate 172 Size 2"}}
End Select
StoreAdSizePrint.DataBind()
End Sub
End Class
Last edited by Daniil; Dec 17, 2010 at 1:24 PM.
Reason: [CLOSED]