Originally Posted by
Vladimir
Vladimir,
Thanks for your reply.
I implemented your code changes but it is working. Record is getting inserting into the database.
my requirement is like when click on the Add button am inserting new row in GridPanel and I have editors as textboxes. when i click on the save button am calling "Gridpanel1.save()" method then the record directly saving to the database.
here is the my code . Can you please help me out on this.
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!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 id="Head1" runat="server">
<title>Ext.NET Example</title>
<script type='text/javascript'>
function Editing(e)
{
var isValid = true;
e.grid.store.each(function(record)
{
alert(record);
var value = record.get("Code");
alert(value);
// add own validation expression
if(!(/^\d+$/.test(value)))
{
isValid = false;
return false;
}
});
return isValid;
if(e.column==0)
{
if(e.value=='')
{
alert(parseInt(e.column)+1 +' is column empty at '+ (parseInt(e.row)+1));
e.cancel=true;
}
}
}
function AmtPercenteageRender(value)
{
if(value==="")
return '';
else
{
value=(value==true)?1:0;
return cmb1.getStore().data.items[value].data.text;
}
}
</script>
</head>
<body>
<form id="Form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" Theme="Slate">
</ext:ResourceManager>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=wizard;Data Source=DRAGRAN"
SelectCommand="select ID,Code,Description, case when Percentage IS null then 0 else 1 end AmtPercenteage,ISNULL(Amount,Percentage) value,UserOverride,Surcharge,BeforeAgencyDiscount,Taxable,NoteRequired,IsActive from gsContractsCharges "
InsertCommand="if(@AmtPercenteage =0) insert into gsContractsCharges(Code,Description, Amount) values(@Code,@Description, @value) else insert into gsContractsCharges(Code,Description, Percentage) values (@Code,@Description, @value)"
UpdateCommand="if(@AmtPercenteage =0) update gsContractsCharges set Code=@Code, Description= @Description, Amount=@value,Percentage=null where ID=@ID else update gsContractsCharges set Code=@Code, Description= @Description, Percentage=@value,Amount=null where ID=@ID
" DeleteCommand="delete from gsContractsCharges where ID=@ID">
<UpdateParameters>
<asp:Parameter Type="String" Name="Code" />
<asp:Parameter Type="String" Name="Description" />
<asp:Parameter Type="Double" Name="value" />
<asp:Parameter Type="String" Name="AmtPercenteage" />
<asp:Parameter Type="Int32" Name="ID" />
</UpdateParameters>
<DeleteParameters>
<asp:Parameter Type="Int32" Name="ID" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Type="String" Name="Code" />
<asp:Parameter Type="String" Name="Description" />
<asp:Parameter Type="Double" Name="value" />
<asp:Parameter Type="String" Name="AmtPercenteage" />
</InsertParameters>
</asp:SqlDataSource>
<ext:Store ID="Store1" runat="server" DataSourceID="SqlDataSource1">
<Reader>
<ext:JsonReader IDProperty="ID">
<Fields>
<ext:RecordField Name="ID">
</ext:RecordField>
<ext:RecordField Name="Code" AllowBlank="false">
</ext:RecordField>
<ext:RecordField Name="Description" AllowBlank="false">
</ext:RecordField>
<ext:RecordField Name="value" AllowBlank="false">
</ext:RecordField>
<ext:RecordField Name="AmtPercenteage">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
<Listeners>
<BeforeSave Handler="var valid = true; this.each(function(r){if(r.dirty && !r.isValid()){valid=false;}});" />
<LoadException Handler="Ext.Msg.alert(' Load failed', e.message || e);" />
<CommitFailed Handler="Ext.Msg.alert('Commit failed', 'Reason: ' + msg);" />
<SaveException Handler="Ext.Msg.alert('Save failed', e.message || e);" />
<CommitDone Handler="Ext.Msg.alert('Commit', 'The data successfully saved');" />
</Listeners>
</ext:Store>
<ext:GridPanel runat="server" ID="GridPanel1" StoreID="Store1" Height="250" Frame="true"
Title="Web Ad Positions" AutoExpandColumn="Code" AutoExpandMax="400">
<Listeners>
<ValidateEdit Fn="Editing" />
</Listeners>
<ColumnModel runat="server" ID="GridPanel1_ColumnModel1">
<Columns>
<ext:Column DataIndex="Code" Header="Name">
<Editor>
<ext:TextField ID="TextField1" runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Description" Header="Description">
<Editor>
<ext:TextArea ID="TextArea1" runat="server" AllowBlank="false"/>
</Editor>
</ext:Column>
<ext:Column DataIndex="AmtPercenteage" Header="AmtPercenteage">
<Editor>
<ext:ComboBox runat="server" ID="cmb1">
<Items>
<ext:ListItem Text="Amount" Value="0" />
<ext:ListItem Text="Percentage" Value="1" />
</Items>
</ext:ComboBox>
</Editor>
<Renderer Fn="AmtPercenteageRender" />
</ext:Column>
<ext:Column DataIndex="value" Header="value">
<Editor>
<ext:TextField ID="TextField3" runat="server" AllowBlank="false" />
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel runat="server" ID="SelectionModel1" />
</SelectionModel>
</ext:GridPanel>
<ext:Button runat="server" ID="btnAdd" Text="Add" Icon="Add">
<Listeners>
<Click Handler="#{GridPanel1}.insertRecord(0, {});#{GridPanel1}.getView().focusRow(0);#{GridPanel1}.startEditing(0, 0);" />
</Listeners>
</ext:Button>
<ext:Button ID="Button1" runat="server" Text="Save">
<Listeners>
<Click Handler="#{GridPanel1}.save();" />
</Listeners>
</ext:Button>
</form>
</body>
</html>