Here is a simple example I have re-produced. When selecting a record from the grid, the two fields below in the Form Panel get populated with the selected record. However, the btnSave button remains disabled and the status bar says "Form is invalid".
Thanks
Ravi Swaminathan
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="FormValidation.aspx.vb"
Inherits="EXTTabs.FormValidation" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Store1.DataSource = New Object() {New Object() {"12345", "ABC Ltd (12345)"}, New Object() {"5444", "XYZ Inc (5444)"}, New Object() {"67677", "Overseas Iron Works (67677)"}, New Object() {"234234", "Software Services(234234)"}, New Object() {"7765756", "Movie Zone(7765756)"}, New Object() {"76866", "Johnson Clips (76866)"}, _
New Object() {"465464", "Sports House (465464)"}, New Object() {"57655", "Green House (57655)"}}
Me.Store1.DataBind()
End Sub
Protected Sub CheckField(sender As Object, e As Ext.Net.RemoteValidationEventArgs)
e.Success = True
End Sub
Protected Sub RowSelect(sender As Object, e As DirectEventArgs)
Dim data As String = e.ExtraParams("Company")
Dim results As New XmlDocument()
results.LoadXml(String.Format("<record>{0}</record>", data))
txtCustNo.Text = results("record").Item("custno").InnerText
txtName.Text = results("record").Item("name").InnerText
End Sub
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" DebugConsole="Ext" />
<ext:Store ID="Store1" runat="server">
<Reader>
<ext:ArrayReader>
<Fields>
<ext:RecordField Name="custno" />
<ext:RecordField Name="name" />
</Fields>
</ext:ArrayReader>
</Reader>
<AutoLoadParams>
<ext:Parameter Name="start" Value="0" Mode="Raw" />
<ext:Parameter Name="limit" Value="5" Mode="Raw" />
</AutoLoadParams>
</ext:Store>
<ext:GridPanel ID="GridPanel1" runat="server" StripeRows="true" Title="Array Grid"
TrackMouseOver="true" Width="600" Height="350" StoreID="Store1" AutoExpandColumn="name">
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="Company" Header="Company" DataIndex="custno" />
<ext:Column Header="name" DataIndex="name">
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true">
<DirectEvents>
<RowSelect OnEvent="RowSelect" Buffer="100">
<EventMask ShowMask="true" Target="CustomTarget" CustomTarget="#{fpCustomer}" />
<ExtraParams>
<%-- or can use params[2].id as value --%>
<ext:Parameter Name="Company" Value="this.getSelected().data" Mode="Raw" />
</ExtraParams>
</RowSelect>
</DirectEvents>
</ext:RowSelectionModel>
</SelectionModel>
</ext:GridPanel>
<ext:FormPanel ID="fpCustomer" runat="server" Border="false" MonitorValid="true"
Padding="5" Width="500" Height="150" ButtonAlign="Right">
<Items>
<ext:TextField ID="txtCustNo" runat="server" FieldLabel="Customer Number" MaxLength="35"
AnchorHorizontal="92%" LabelAlign="Top" AllowBlank="false" IsRemoteValidation="true">
<RemoteValidation OnValidation="CheckField" />
</ext:TextField>
<ext:TextField ID="txtName" runat="server" FieldLabel="Customer Name" MaxLength="35"
IsRemoteValidation="true" AnchorHorizontal="92%" LabelAlign="Top" AllowBlank="true">
<RemoteValidation OnValidation="CheckField" />
</ext:TextField>
</Items>
<Buttons>
<ext:Button ID="btnSave" runat="server" Text="Save" FormBind="true" />
<ext:Button ID="btnClose" runat="server" Text="Close" FormBind="false">
<Listeners>
<Click Handler="#{fpCustomer}.hide();" />
</Listeners>
</ext:Button>
</Buttons>
<BottomBar>
<ext:StatusBar ID="StatusBar1" runat="server" Height="25" />
</BottomBar>
<Listeners>
<ClientValidation Handler="this.getBottomToolbar().setStatus({text : valid ? 'Form is valid' : 'Form is invalid', iconCls: valid ? 'icon-accept' : 'icon-exclamation'});" />
</Listeners>
</ext:FormPanel>
</form>
</body>
</html>