hi,

i have validate Textfield control using vType property and i check textfield control is valid or not in submit button listner click event, if textfield control is not valid i return false and avoid server side ajax button click event... My problem is ajax button click event is called if Textfield control is not valid.. how to avoid ajax event if Textfield control is not valid...

plz check my ValCallOut() javascript function and also i am using if else loop insted of foreach loop.. how to use foreach and iterate every controls and validate......

<%@ Page Language="C#" %>

<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

BindCurrency();

}

}

private void BindCurrency()

{

System.Data.DataTable dt = new System.Data.DataTable();

dt.Columns.Add("Code", Type.GetType("System.String"));

dt.Columns.Add("Currencies", Type.GetType("System.String"));

dt.Rows.Add("NYK", "NEW YORK");

dt.Rows.Add("LDN", "LONDON");

dt.Rows.Add("SGP", "SINGAPORE");

dt.Rows.Add("DBI", "DUBAI");

clstrCurrency.DataSource = dt;

clstrCurrency.DataBind();

}

protected void climbSave_click(object sender, AjaxEventArgs e)

{

Ext.Msg.Alert("Validation", "Fail").Show();

}

 

 

protected void clstrCurrency_RefreshData(object sender, StoreRefreshDataEventArgs e)

{

BindCurrency();

}

</script>

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

<title></title>

<script type="text/javascript" language="javascript">

var Edit = function (value)

{

return String.format('<a href="void(0)" &#111;nclick="Popup()" id="ahrefPopUp1">Edit</a>');

}

function Popup()

{

CompanyLimit();

clwnwCurrency.show();

clwnwCurrency.setTitle("Edit Profit Center");

}

function CompanyLimit()

{

var r = clgrvpnlCurrency.getSelectionModel().getSelected();

cltfCode.setValue(r.data.Code);

cltfCurrency.setValue(r.data.Currencies);

}

function AddCurrency()

{

clwnwCurrency.show();

cltfCode.setValue("");

cltfCurrency.setValue("");

clwnwCurrency.setTitle("Add Profit Center");

}

function CloseCurrency()

{

clwnwCurrency.hide();

}

 

</script>

<script type="text/javascript">

function showWarning(field)

{

if(window.showMessage &amp;&amp; !field.isValid(true))

{

var validationMessage = Ext.get(&#100;ocument.getElementById('validationMessage'));

validationMessage.show();

validationMessage.alignTo(field.el, "tl-tr",[0,0]);

validationMessage.child('.content').dom.innerHTML = field.invalidText;

}

}

function ValCallOut()

{

if(!cltfCode.isValid(true))

{

cltfCode.focus();

return false;

}

else if(!cltfCurrency.isValid(true))

{

cltfCurrency.focus();

return false;

}

else

{

return true;

}

}

 

function Close(field)

{

if(field.isValid(true))

{

&#100;ocument.getElementById('validationMessage').style.display="none";

return true;

}

}

</script>

<style type="text/css">

.content

{

padding-left: 10px;

font-size: 11px;

font-family: tahoma;

float: left;

color: #FFF;

vertical-align: top;

border: 0;

}

</style>

</head>

<body>

<form id="form1" runat="server">

<ext:ScriptManager ID="ScriptManager1" runat="server" />

<table cellpadding="0" cellspacing="0" width="100%">

<tr>

<td>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td class="subtitlelt">

</td>

<td class="subtitlect">

Profit Center Master

</td>

<td class="subtitlert">

</td>

</tr>

</table>

</td>

</tr>

<tr>

<td class="contentimg">

<table cellpadding="0" cellspacing="0" width="100%">

<tr>

<td class="bodytextcenter">

To add a Profit Center to this existing list, please click

<ext:LinkButton ID="cllnbAddReviewer" runat="server" Text="here" CausesValidation="false">

<Listeners>

<Click Fn="AddCurrency" />

</Listeners>

</ext:LinkButton>

</td>

</tr>

<tr>

<td class="tdheightsmall">

</td>

</tr>

<tr>

<td class="bodytextleft">

<ext:Store ID="clstrCurrency" runat="server" OnRefreshData="clstrCurrency_RefreshData">

<Reader>

<ext:JsonReader ReaderID="Reader">

<Fields>

<ext:RecordField Name="Code" Type="String" />

<ext:RecordField Name="Currencies" Type="String" />

</Fields>

</ext:JsonReader>

</Reader>

<SortInfo Field="Code" Direction="ASC" />

</ext:Store>

<ext:Panel ID="Panel1" runat="server">

<Body>

<ext:FitLayout ID="FitLayout1" runat="server">

<ext:GridPanel ID="clgrvpnlCurrency" runat="server" StoreID="clstrCurrency" StripeRows="true"

Title="Profit Center" Height="400" AutoExpandColumn="Code">

<ColumnModel ID="clcmCurrency" runat="server">

<Columns>

<ext:Column Header="Code" ColumnID="Code" DataIndex="Code" Sortable="true" />

<ext:Column Header="Profit Center" DataIndex="Currencies" Sortable="true" />

<ext:Column Header="Edit" DataIndex="Code" Sortable="true">

<Renderer Fn="Edit" />

</ext:Column>

</Columns>

</ColumnModel>

<SelectionModel>

<ext:RowSelectionModel ID="clrsmCurrency" runat="server" />

</SelectionModel>

<Plugins>

<ext:GridFilters ID="clgfCurrency" runat="server" Local="true">

<Filters>

<ext:StringFilter DataIndex="Code" />

<ext:StringFilter DataIndex="Currencies" />

</Filters>

</ext:GridFilters>

</Plugins>

<BottomBar>

<ext:PagingToolbar ID="clpgtbState" StoreID="clstrCurrency" runat="server" PageSize="15">

</ext:PagingToolbar>

</BottomBar>

</ext:GridPanel>

</ext:FitLayout>

</Body>

</ext:Panel>

</td>

</tr>

<tr>

<td>

</td>

</tr>

<tr>

<td>

<ext:Window ID="clwnwCurrency" runat="server" Show&#111;nload="false" Collapsible="true"

Width="400" Height="160">

<Defaults>

<ext:Parameter Name="preventMark" Value="true" Mode="Raw">

</ext:Parameter>

</Defaults>

<Body>

<table cellpadding="3" cellspacing="0" border="0" width="100%">

<tr>

<td class="formheading" runat="server" id="msgTd" colspan="2">

Profit Center Add

</td>

</tr>

<tr>

<td class="tdheightsmall" colspan="2">

</td>

</tr>

<tr>

<td class="formtdlt">

*Profit Center Code

</td>

<td class="formtdrt">

<ext:TextField runat="server" EnableKeyEvents="true" ID="cltfCode" AllowBlank="false"

Vtype="alpha" MsgTarget="Title" Width="100" InvalidText="Enter a valid code">

<Listeners>

<Render Handler="this.on('focus', showWarning, this);" />

<KeyPress Handler="Close(#{cltfCode});" />

</Listeners>

<CustomConfig>

<ext:ConfigItem Name="preventMark" Value="true" Mode="Raw" />

</CustomConfig>

</ext:TextField>

</td>

</tr>

<tr>

<td class="formtdlt">

*Profit Center Name

</td>

<td class="formtdrt">

<ext:TextField runat="server" ID="cltfCurrency" AllowBlank="false" Width="100"

Regex="^[a-zA-Z\s]+$" InvalidText="Enter Valid Currency" EnableKeyEvents="true" MsgTarget ="Title" >

<Listeners>

<Render Handler="this.on('focus', showWarning, this);" />

<KeyPress Handler="Close(#{cltfCurrency});" />

</Listeners>

<CustomConfig>

<ext:ConfigItem Name="preventMark" Value="true" Mode="Raw" />

</CustomConfig>

</ext:TextField>

</td>

</tr>

<tr>

<td colspan="2" align="center">

<ext:Button ID="climbSave" runat="server" Text="Submit" CausesValidation="true">

<Listeners>

<Click Handler="window.showMessage=true;ValCallOut();" />

<Render Handler="this.on('focus', showWarning,this);" />

</Listeners>

<CustomConfig>

<ext:ConfigItem Name="preventMark" Value="true" Mode="Raw" />

</CustomConfig>

<AjaxEvents>

<Click OnEvent="climbSave_click"></Click>

</AjaxEvents>

</ext:Button>

</td>

</tr>

<tr>

<td>

</td>

</tr>

<tr>

<td class="tdheightsmall">

</td>

</tr>

</table>

</Body>

</ext:Window>

</td>

</tr>

</table>

</td>

</tr>

</table>

<div id="validationMessage" class="x-hidden" runat="server" style="z-index: 50000;">

<table width="160px" border="0" cellspacing="0" cellpadding="0">

<tr>

<td style="vertical-align: top; text-align: right" width="16px">

<img src="../../lt.png" width="16" height="43" />

</td>

<td width="130px" style="padding: 2px; vertical-align: top; background: url(../../bg.png) repeat-x">

<div style="padding: 6px 0; float: left">

<img src="../../warn.png" align="left" />


<div class="content">

Text here


</td>

<td valign="top" width="12" style="background: url(../../rt.png) no-repeat; padding: 2px 0">

<img src="../../cancel_p.png" style="cursor: hand;" width="10" height="10" &#111;nclick="Ext.fly(&#100;ocument.getElementById('validationMessage')).hide();return false;" />

</td>

</tr>

</table>




</form>

</body>

</html>