Oct 13, 2009, 9:48 AM
[CLOSED] How to disable/enable all controls in formpanel
I am calling AjaxMethod which loops trough the controls in a formlayout and then sets disabled to true/false. but it is not working. is it possible to disable/enable controls through AjaxMethod.
Thanks for your help.
idriss
<ext:Panel ID="Panel5" runat="server" Header="true" Collapsible="true" Border="true"
Frame="true" Title="Air Transportation" BodyStyle="padding:1px 2px 2px 2px;">
<Body>
<ext:FormLayout ID="FormLayout3" runat="server" LabelAlign="Top">
<ext:Anchor Horizontal="50%">
<ext:Hidden runat="server" ID="TravelID">
</ext:Hidden>
</ext:Anchor>
<ext:Anchor Horizontal="50%">
<ext:Hidden runat="server" ID="UserId">
</ext:Hidden>
</ext:Anchor>
<ext:Anchor Horizontal="50%">
<ext:ComboBox ID="FlightArrangement" runat="server" Editable="False" EmptyText="Select Air Transportation"
FireSelectOnLoad="True" Mode="Local" TypeAhead="False" Width="255" ForceSelection="true"
FieldLabel="" HideLabel="true" SelectOnFocus="true" TriggerAction="All" InvalidClass="error"
MsgTarget="Side" AllowBlank="false">
<Items>
<ext:ListItem Text="I will make my own arrangements" Value="2" />
<ext:ListItem Text="SDRMA to arrange" Value="1" />
<ext:ListItem Text="No arrangements required" Value="0" />
</Items>
<SelectedItem Text="No arrangements required" Value="0" />
</ext:ComboBox>
</ext:Anchor>
<ext:Anchor Horizontal="92%">
<ext:MultiField ID="MultiField3" runat="server" FieldLabel="I can accept a flight anytime after">
<Fields>
<ext:DateField runat="server" ID="FlightAcceptDate" HideLabel="true" FieldLabel=""
Width="100" AllowBlank="true" Format="MM/dd/yyyy" SelectOnFocus="true" MsgTarget="under"
InvalidClass="error" BlankText="Start Date is invalid." InvalidText="{0} is not a valid date - it must be in the format M/d/yyyy or MM/dd/yyyy">
</ext:DateField>
<ext:TimeField ID="FlightAcceptDateTime" runat="server" Increment="30" Width="100"
HideLabel="true" Format="HH:mm" />
</Fields>
</ext:MultiField>
</ext:Anchor>
<ext:Anchor Horizontal="92%">
<ext:MultiField ID="MultiField5" runat="server" FieldLabel="Airline and Confirmation#">
<Fields>
<ext:TextField ID="FlightAirline" runat="server" FieldLabel="Flight Information"
Cls="big-text" AllowBlank="true" InvalidClass="error" ItemCls="notrequired" >
<ToolTips>
<ext:ToolTip ID="ToolTip9" runat="server" Html="Airline Information" />
</ToolTips>
</ext:TextField>
<ext:TextField ID="FlightConfirmation" runat="server" FieldLabel="Confirmation #"
Cls="big-text" AllowBlank="true" InvalidClass="error" ItemCls="notrequired" >
<ToolTips>
<ext:ToolTip ID="ToolTip10" runat="server" Html="Confirmation Number" />
</ToolTips>
</ext:TextField>
</Fields>
</ext:MultiField>
</ext:Anchor>
<ext:Anchor Horizontal="92%">
<ext:MultiField ID="MultiField4" runat="server" FieldLabel="Flight to Event">
<Fields>
<ext:DateField runat="server" ID="Flight1Date" FieldLabel="Flight" Width="100" AllowBlank="true"
Format="MM/dd/yyyy" SelectOnFocus="true" MsgTarget="under" InvalidClass="error"
BlankText="Start Date is invalid." InvalidText="{0} is not a valid date - it must be in the format M/d/yyyy or MM/dd/yyyy">
<ToolTips>
<ext:ToolTip ID="ToolTip2" runat="server" Html="Departure Date" />
</ToolTips>
</ext:DateField>
<ext:TextField ID="Flight1Number" runat="server" FieldLabel="Flight Information"
AllowBlank="true" InvalidClass="error" ItemCls="notrequired">
<ToolTips>
<ext:ToolTip ID="ToolTip1" runat="server" Html="Flight Number" />
</ToolTips>
</ext:TextField>
<ext:Label runat="server" Text="Departs"></ext:Label>
<ext:TextField ID="Flight1AirportDepart" runat="server" FieldLabel="Departs" AllowBlank="true"
InvalidClass="error" ItemCls="notrequired">
<ToolTips>
<ext:ToolTip ID="ToolTip3" runat="server" Html="Airport Name/Code" />
</ToolTips>
</ext:TextField>
<ext:TimeField ID="Flight1TimeDepart" runat="server" Increment="10" Width="100" HideLabel="true"
Format="HH:mm" />
<ext:Label ID="Label1" runat="server" Text="Arrives"></ext:Label>
<ext:TextField ID="Flight1AirportArrive" runat="server" FieldLabel="Arrives" AllowBlank="true"
InvalidClass="error" ItemCls="notrequired">
<ToolTips>
<ext:ToolTip ID="ToolTip4" runat="server" Html="Airport Name/Code" />
</ToolTips>
</ext:TextField>
<ext:TimeField ID="Flight1TimeArrive" runat="server" Increment="10" Width="100" HideLabel="true"
Format="HH:mm" />
</Fields>
</ext:MultiField>
</ext:Anchor>
<ext:Anchor Horizontal="92%" Vertical="100%">
<ext:MultiField ID="MultiField6" runat="server" FieldLabel="Return Flight">
<Fields>
<ext:DateField runat="server" ID="Flight2Date" FieldLabel="Flight" Width="100" AllowBlank="true"
Format="MM/dd/yyyy" SelectOnFocus="true" MsgTarget="under" InvalidClass="error"
BlankText="Start Date is invalid." InvalidText="{0} is not a valid date - it must be in the format M/d/yyyy or MM/dd/yyyy">
</ext:DateField>
<ext:TextField ID="Flight2Number" runat="server" FieldLabel="Flight Information"
AllowBlank="true" InvalidClass="error" ItemCls="notrequired" />
<ext:Label ID="Label2" runat="server" Text="Departs"></ext:Label>
<ext:TextField ID="Flight2AirportDepart" runat="server" FieldLabel="Departs" AllowBlank="true"
InvalidClass="error" ItemCls="notrequired" />
<ext:TimeField ID="Flight2TimeDepart" runat="server" Increment="10" Width="100" HideLabel="true"
Format="HH:mm" />
<ext:Label ID="Label3" runat="server" Text="Arrives"></ext:Label>
<ext:TextField ID="Flight2AirportArrive" runat="server" FieldLabel="Arrives" AllowBlank="true"
InvalidClass="error" ItemCls="notrequired" />
<ext:TimeField ID="Flight2TimeArrive" runat="server" Increment="10" Width="100" HideLabel="true"
Format="HH:mm" />
</Fields>
</ext:MultiField>
</ext:Anchor>
</ext:FormLayout>
</Body>
</ext:Panel>
[AjaxMethod]
public void LoadBoardMembers(string name, string userID)
{
switch (FlightArrangement.SelectedItem.Value)
{
case "0": //No arrangements required
case "1": //SDRMA to arrange - View only for boardMembers
if (isBoardMember)
{
SetFieldsEnabled(FormLayout3, true);
FlightAirline.Enabled = false;
}
break;
case "2": //I will make my own arrangements
if (isBoardMember)
{
SetFieldsEnabled(FormLayout3, false);
}
break;
default:
break;
}
}
public void SetFieldsEnabled(Coolite.Ext.Web.FormLayout layout, bool disabled)
{
foreach (var item in layout.Anchors)
{
if (item.Items.Count > 0)
{
// as Coolite.Ext.Web.TextFieldBase
var field = item.Items[0];
if (field != null)
{
if (field.GetType().ToString().Equals("Coolite.Ext.Web.TextFieldBase"))
{
((Coolite.Ext.Web.TextFieldBase)field).Disabled = disabled;
}
else if (field.GetType().ToString().Equals("Coolite.Ext.Web.MultiField"))
{
foreach (Coolite.Ext.Web.Field ff in ((Coolite.Ext.Web.MultiField)field).Fields)
{
ff.Disabled = disabled;
}
}
}
}
}
}