Originally Posted by
Vladimir
What do you mean "Its not working"? Please provide more details
I used version 1.1 code it is working ,find the code in below
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Drag.aspx.cs" Inherits="Drag" %>
%@ Import Namespace="System.Collections.ObjectModel" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.Xml" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
private bool cancel;
private string message;
private string insertedValue;
protected void Store1_AfterRecordInserted(object sender, AfterRecordInsertedEventArgs e)
{
//The deleted and updated records confirms automatic (depending AffectedRows field)
//But you can override this in AfterRecordUpdated and AfterRecordDeleted event
//For insert we should set new id for refresh on client
//If we don't set new id then old id will be used
//if (!string.IsNullOrEmpty(insertedValue))
//{
// e.Keys.Add("ID", insertedValue);
// insertedValue = "";
//}
if (e.Confirmation.Confirm && !string.IsNullOrEmpty(insertedValue))
{
e.Confirmation.ConfirmRecord(insertedValue);
insertedValue = "";
}
}
protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
//use e.AffectedRows for ensure success action. The store read this value and set predefined Confirm depend on e.AffectedRows
//The Confirm can be granted or denied in OnRecord....ed event
//insertedValue = e.Command.Parameters["@newId"].Value != null
// ? e.Command.Parameters["@newId"].Value.ToString()
// : "";
if (e.Command.Parameters["@newId"].Value != null)
{
insertedValue = e.Command.Parameters["@newId"].Value.ToString();
}
else
{
insertedValue = "s";
}
}
protected void Store1_AfterDirectEvent(object sender, AfterDirectEventArgs e)
{
if (e.Response.Success)
{
// set to .Success to false if we want to return a failure
e.Response.Success = !cancel;
e.Response.Message = message;
if (this.cancel)
{
GridPanel1.AddScript("alert({0});", JSON.Serialize(this.message));
}
}
}
protected void Store1_BeforeDirectEvent(object sender, BeforeDirectEventArgs e)
{
string emulError = e.Parameters["EmulateError"];
try
{
if (emulError == "1")
{
throw new Exception("Emulating error");
}
}
catch (Exception ex)
{
}
}
protected void Store1_RefershData(object sender, StoreRefreshDataEventArgs e)
{
this.Store1.DataBind();
}
protected void btnSave_Click(object sender, EventArgs e)
{
GridPanel1.Reload();
}
</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>
<style type="text/css">
.x-grid3-td-fullName .x-grid3-cell-inner
{
font-family: tahoma, verdana;
display: block;
font-weight: normal;
font-style: normal;
color: #385F95;
white-space: normal;
}
.x-grid3-row-body p
{
margin: 5px 5px 10px 5px !important;
width: 99%;
color: Gray;
}
/* style rows on mouseover */
.x-grid3-row-over .x-grid3-cell-inner {
font-weight: bold;
}
</style>
<ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="ScriptFiles" />
<script src="Scripts/jt.js" type="text/javascript"></script>
<script src="Scripts/Ext.ux.DataDrop.js" type="text/javascript"></script>
<script type="text/javascript">
var deleteRows = function (grid) {
Ext.Msg.confirm('Delete Rows', 'Are you sure?', function (btn) {
if (btn == 'yes') {
grid.deleteSelected();
grid.save();
}
//return focus
grid.view.focusEl.focus();
})
}
function copyToClipboardCrossbrowser(s) {
s = document.getElementById(s).value;
if (window.clipboardData && clipboardData.setData) {
clipboardData.setData("Text", s);
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TFA_DBConnectionString %>"
SelectCommand="select * from Users"
InsertCommand="insert into Users (User_Name, Entitlement_Id,Group_ID) values (@User_Name,@Entitlement_Id,@Group_ID)
SELECT @newId = @@Identity;" DeleteCommand="delete from Users where (User_Name_ID=@User_Name_ID)"
UpdateCommand="update Users set User_Name=@User_Name, Entitlement_Id = @Entitlement_Id,Group_ID=@Group_ID
where User_Name_ID=@User_Name_ID " OnInserted="SqlDataSource1_Inserted">
<DeleteParameters>
<asp:Parameter Name="User_Name" Type="Int32" />
<asp:Parameter Name="User_Name_ID" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="User_Name" Type="String" />
<asp:Parameter Name="Entitlement_Id" Type="String" />
<asp:Parameter Name="Group_ID" Type="String" />
<asp:Parameter Name="User_Name_ID" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="User_Name" Type="String" />
<asp:Parameter Name="Group_ID" Type="String" />
<asp:Parameter Name="Entitlement_Id" Type="String" />
<asp:Parameter Direction="Output" Name="newId" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
<ext:Store ID="Store1" runat="server" DataSourceID="SqlDataSource1" ShowWarningOnFailure="false"
OnAfterDirectEvent="Store1_AfterDirectEvent" UseIdConfirmation="true" OnAfterRecordInserted="Store1_AfterRecordInserted"
OnRefreshData="Store1_RefershData">
<Reader>
<ext:JsonReader IDProperty="User_Name_ID">
<Fields>
<ext:RecordField Name="User_Name"></ext:RecordField>
<ext:RecordField Name="Group_ID" />
<ext:RecordField Name="Entitlement_Id" />
</Fields>
</ext:JsonReader>
</Reader>
<SortInfo Field="User_Name" Direction="ASC" />
<Listeners>
<LoadException Handler="Ext.Msg.alert('USER_INFO - Load failed', e.message || e);" />
<CommitFailed Handler="Ext.Msg.alert('USER_INFO - Commit failed', 'Reason: ' + msg);" />
<SaveException Handler="Ext.Msg.alert('USER_INFO - Save failed', e.message || e);" />
<CommitDone Handler="Ext.Msg.alert('USER_INFO - Commit', 'The data successfully saved');" />
</Listeners>
</ext:Store>
<ext:Panel ID="Panel2" runat="server" Height="300" Header="false" Layout="Fit">
<Items>
<ext:GridPanel ID="GridPanel1" runat="server" Title="Account_master" AutoExpandColumn="User_Name" TrackMouseOver="true" StripeRows="true"
StoreID="Store1" Border="false" Width="600" Height="350" Icon="Lorry" BodyStyle="color:Black;">
<%--<ResizableConfig Handles="East" />--%>
<%--<Store>
<ext:Store ID="Store2" runat="server">
</ext:Store>
</Store>--%>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="User_Name" DataIndex="User_Name" Header="User_Name" Width="290" Editable="true">
<Editor>
<ext:TextField ID="TextField1" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Group_ID" Header="Group_ID" Width="300">
<Editor>
<ext:TextField ID="TextField2" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Entitlement_Id" Header="Entitlement_Id" Width="300">
<Editor>
<ext:TextField ID="TextField3" runat="server" />
</Editor>
</ext:Column>
</Columns>
</ColumnModel> <CustomConfig>
<ext:ConfigItem Name="plugins" Value="Ext.ux.grid.DataDrop" Mode="Raw" />
</CustomConfig>
<Plugins>
<ext:GridFilters ID="filter" runat="server">
<Filters>
<ext:StringFilter DataIndex="User_Name">
</ext:StringFilter>
<ext:StringFilter DataIndex="Group_ID">
</ext:StringFilter>
<ext:StringFilter DataIndex="Entitlement_Id">
</ext:StringFilter>
</Filters>
</ext:GridFilters>
</Plugins>
<SelectionModel>
<ext:CheckboxSelectionModel ID="CheckboxSelectionModel1" runat="server" Mode="Multi" />
<%-- <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />--%>
</SelectionModel>
</ext:GridPanel>
</Items>
<Buttons>
<ext:Button ID="btnSave" runat="server" Text="Save" Icon="Disk">
<Listeners>
<Click Handler="#{GridPanel1}.save();" />
</Listeners>
</ext:Button>
<ext:Button ID="btnDelete" runat="server" Text="Delete selected records" Icon="Delete">
<Listeners>
<Click Handler="deleteRows(#{GridPanel1});" />
</Listeners>
<DirectEvents>
<Click OnEvent="btnSave_Click" />
</DirectEvents>
</ext:Button>
<ext:Button ID="btnInsert" runat="server" Text="Insert" Icon="Add">
<Listeners>
<Click Handler="#{GridPanel1}.insertRecord(0, {});#{GridPanel1}.getView().focusRow(0);#{GridPane l1}.startEditing(0, 0);" />
</Listeners>
</ext:Button>
<ext:Button ID="btnRefresh" runat="server" Text="Refresh" Icon="ArrowRefresh">
<Listeners>
<Click Handler="#{GridPanel1}.reload();" />
</Listeners>
</ext:Button>
<%--<ext:Button ID="sss" runat="server" Icon="Add" Text="Save dragged data">
<DirectEvents>
<Click OnEvent="test_Click" >
<ExtraParams>
<ext:Parameter Name="data" Value="#{GridPanel1}.getRowsValues()" Mode="Raw" Encode="true" />
<ext:Parameter Name="format" Value="pdf" Mode="Value" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>--%>
</Buttons>
</ext:Panel>
<br />
<asp:Label runat="server" ID="contentlable" align="justify" color="#7D1B7E" Style="font-family: Palatino Linotype, sans-serif;
font-size: 18px;" ForeColor="Black"></asp:Label>
<asp:Label runat="server" ID="ThanaThandana" align="justify" color="#7D1B7E" Style="font-family: Palatino Linotype, sans-serif;
font-size: 18px;" ForeColor="Red">aa</asp:Label>
</form>
</body>
</html>
Version 2.2 code is below its not working
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="drag and drop.aspx.cs" Inherits="drag_and_drop" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<%@ Import Namespace="System.Collections.ObjectModel" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<script runat="server">
private bool cancel;
private string message;
private int? insertedValue;
protected void Store1_BeforeRecordInserted(object sender, BeforeRecordInsertedEventArgs e)
{
object region = e.NewValues["Region"];
if (region == null || region.ToString() != "Alabama (AL)")
{
e.Cancel = true;
this.cancel = true;
this.message = "The Region must be 'AL'";
}
}
protected void Store1_AfterRecordInserted(object sender, AfterRecordInsertedEventArgs e)
{
if (insertedValue.HasValue)
{
e.Keys.Add("ID", insertedValue.Value);
insertedValue = null;
}
//if (e.Confirmation.Confirm && !string.IsNullOrEmpty(insertedValue))
//{
// e.Confirmation.ConfirmRecord(insertedValue);
// insertedValue = "";
//}
}
protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
//use e.AffectedRows for ensure success action. The store read this value and set predefined Confirm depend on e.AffectedRows
//The Confirm can be granted or denied in OnRecord....ed event
if (e.AffectedRows > 0 && e.Command.Parameters["@newId"].Value != null)
{
insertedValue = (int)e.Command.Parameters["@newId"].Value;
}
else
{
insertedValue = null;
}
}
protected void Store1_AfterDirectEvent(object sender, AfterDirectEventArgs e)
{
if (e.Response.Success)
{
// set to .Success to false if we want to return a failure
e.Response.Success = !cancel;
e.Response.Message = message;
}
}
protected void Store1_BeforeDirectEvent(object sender, BeforeDirectEventArgs e)
{
string emulError = e.Parameters["EmulateError"];
if (emulError == "1")
{
throw new Exception("Emulating error");
}
}
protected void Store1_RefershData(object sender, StoreReadDataEventArgs e)
{
this.Store1.DataBind();
}
protected void btnSave_Click(object sender, EventArgs e)
{
GridPanel1.Reload();
}
protected void Store1_Submit(object sender, StoreSubmitDataEventArgs e)
{
string format = this.FormatType.Value.ToString();
XmlNode xml = e.Xml;
this.Response.Clear();
//this.Response.End();
this.Response.ContentType = "application/vnd.ms-excel";
this.Response.AddHeader("Content-Disposition", "attachment; filename=Files.xls");
System.Xml.Xsl.XslCompiledTransform xtExcel = new System.Xml.Xsl.XslCompiledTransform();
xtExcel.Load(Server.MapPath("Excel.xsl"));
xtExcel.Transform(xml, null, Response.OutputStream);
this.Response.End();
}
</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 id="Head1" runat="server">
<title></title>
<ext:ResourcePlaceHolder ID="ResourcePlaceHolder1" runat="server" Mode="ScriptFiles" />
<script src="Scripts/jt.js" type="text/javascript"></script>
<script src="Scripts/Ext.ux.DataDrop.js" type="text/javascript"></script>
<style type="text/css">
.x-grid3-td-fullName .x-grid3-cell-inner
{
font-family: tahoma, verdana;
display: block;
font-weight: normal;
font-style: normal;
color: #385F95;
white-space: normal;
}
.x-grid3-row-body p
{
margin: 5px 5px 10px 5px !important;
width: 99%;
color: Gray;
}
</style>
<script type="text/javascript">
var deleteRows = function (grid) {
if (grid.getSelectionModel().getCount() < 1) {
Ext.Msg.alert('Message', 'Please select records need tobe deleted');
return false;
}
else {
Ext.Msg.confirm('Delete Rows', 'Are you sure?', function (btn) {
if (btn == 'yes') {
grid.deleteSelected();
grid.save();
}
//return focus
grid.view.focusEl.focus();
})
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" DirectMethodNamespace="CompanyX"/>
<ext:Hidden ID="FormatType" runat="server" />
<asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>"
selectcommand="SELECT ID, [Code],[Description] FROM [Code]"
InsertCommand="INSERT INTO Code
(Code,
Description)
VALUES
(@Code,
@Description);
SELECT @newId = @@Identity;"
DeleteCommand="DELETE FROM Code WHERE (ID =@ID)"
UpdateCommand="UPDATE Code SET Code = @Code, Description = @Description where (ID=@ID)"
OnInserted="SqlDataSource1_Inserted">
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="Code" Type="String" />
<asp:Parameter Name="Description" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="Code" Type="String" />
<asp:Parameter Name="Description" Type="String" />
<asp:Parameter Direction="Output" Name="newId" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
<ext:Store
ID="Store1"
runat="server"
DataSourceID="SqlDataSource1"
ShowWarningOnFailure="false"
OnAfterDirectEvent="Store1_AfterDirectEvent"
UseIdConfirmation="true"
OnSubmitData="Store1_Submit" RemoteSort="true"
OnAfterRecordInserted="Store1_AfterRecordInserted"
OnRefreshData="Store1_RefershData">
<Model>
<ext:Model ID="Model1" IDProperty ="ID" runat="server">
<Fields>
<ext:ModelField Name="Code" />
<ext:ModelField Name="Description" />
<ext:ModelField Name="ID" />
</Fields>
</ext:Model>
</Model>
<Listeners>
<Exception Handler="Ext.Msg.alert('Operation failed','The Combination was already existed');" />
<Write Handler="Ext.Msg.alert('Currency - Commit', 'The data successfully saved');" />
</Listeners>
</ext:Store>
<ext:Viewport ID="Viewport1" runat="server" Layout="FitLayout">
<Items>
<ext:Panel ID="Panel2" runat="server" Height="450" Header="false" Layout="Fit">
<Items>
<ext:GridPanel
ID="GridPanel1"
runat="server"
Title="Currency"
StoreID="Store1"
Border="false"
Width="1150"
Height="350"
BodyStyle="color:Black;">
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="Button3" runat="server" Text="To Excel" Icon="PageExcel">
<Listeners>
<Click Handler="submitValue(#{GridPanel1}, #{FormatType}, 'xls');" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ID="Column1" DataIndex="Code" Header="Code" Width="100" runat="server" StyleSpec="font-weight: bold;">
<Editor>
<ext:TextField ID="txt1" runat="server"></ext:TextField>
</Editor>
</ext:Column>
<ext:Column ID="Column2"
ColumnID="Description"
DataIndex="Description"
Header="Description" Width="100" runat="server" StyleSpec="font-weight: bold;" >
<Editor>
<ext:ComboBox ID="ComboBox2" runat="server"
DisplayField="Description"
ValueField="Description"
EmptyText="Select a Description" TypeAhead="true" Mode="Local" Editable="true" ForceSelection="false" HideTrigger="false" TriggerAction="All">
<Store>
<ext:Store ID="Store3" runat="server">
<Model>
<ext:Model runat="server" ID="Model3">
<Fields>
<ext:ModelField Name="Description" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
</ext:ComboBox>
</Editor>
</ext:Column>
<ext:Column ID="Column3" DataIndex="ID" Text="ID" runat="server" width="" Hidden="true" StyleSpec="font-weight: bold;"/>
</Columns>
</ColumnModel>
<Features>
<ext:GridFilters ID="filter" runat="server" Local="true">
<Filters>
<ext:StringFilter DataIndex="Code"></ext:StringFilter>
<ext:StringFilter DataIndex="Description"></ext:StringFilter>
</Filters>
</ext:GridFilters>
</Features>
<SelectionModel>
<ext:CheckboxSelectionModel ID="CheckboxSelectionModel1" runat="server" Mode="Multi" >
</ext:CheckboxSelectionModel>
</SelectionModel>
<Plugins>
<ext:CellEditing ID="CellEditing1" runat="server" >
</ext:CellEditing>
<ext:GenericPlugin ID="GenericPlugin1" runat="server" InstanceName="Ext.ux.grid.DataDrop" Singleton="true" />
</Plugins>
<BottomBar>
<ext:PagingToolbar ID="PagingToolbar1" runat="server" StyleSpec="color:Black" HideRefresh="true">
<Items>
<ext:Label ID="Label2" runat="server" Text="Page size:" StyleSpec="color:Black" />
<ext:ToolbarSpacer ID="ToolbarSpacer1" runat="server" Width="10" />
<ext:ComboBox ID="ComboBox4" runat="server" Width="80">
<Items>
<ext:ListItem Text="20" />
<ext:ListItem Text="40" />
<ext:ListItem Text="60" />
<ext:ListItem Text="100" />
<ext:ListItem Text="200" />
<ext:ListItem Text="500" />
</Items>
<SelectedItems>
<ext:ListItem Text="20" />
</SelectedItems>
<Listeners>
<Select Handler="#{GridPanel1}.store.pageSize = parseInt(this.getValue(), 10); #{GridPanel1}.store.load();" />
</Listeners>
</ext:ComboBox>
</Items>
<Plugins>
<ext:ProgressBarPager ID="ProgressBarPager1" runat="server" />
</Plugins>
</ext:PagingToolbar>
</BottomBar>
</ext:GridPanel> <ext:Label ID="Label1" runat="server" />
</Items>
<Buttons>
<ext:Button ID="btnSave" runat="server" Text="Save" Icon="Disk">
<Listeners>
<Click Handler="#{Store1}.sync();" />
</Listeners>
</ext:Button>
<ext:Button ID="btnDelete" runat="server" Text="Delete selected records" Icon="Delete">
<DirectEvents>
<Click OnEvent="delete_click"><ExtraParams> <ext:Parameter Name="Values" Value="Ext.encode(#{GridPanel1}.getRowsValues({sel ectedOnly:true}))" Mode="Raw" /></ExtraParams>
</Click></DirectEvents>
</ext:Button>
<ext:Button ID="btnInsert" runat="server" Text="Insert" Icon="Add">
<Listeners>
<Click Handler="#{Store1}.insert(0, {});#{GridPanel1}.editingPlugin.startEditByPositio n({row:0, column:0});" />
<%-- <Click Handler="#{GridPanel1}.insertRecord(0, {});#{GridPanel1}.getView().focusRow(0);#{GridPane l1}.startEditing(0, 0);" />--%>
</Listeners>
</ext:Button>
<ext:Button ID="btnRefresh" runat="server" Text="Refresh" Icon="ArrowRefresh">
<DirectEvents>
<Click OnEvent="Datareload" />
</DirectEvents>
</ext:Button>
</Buttons>
</ext:Panel>
</Items>
</ext:Viewport>
</form>
</body>
</html>