I' d like to post how insert data from popup to gridview after popup close in editing mode.For example, we have gridview reading data from table "testTable". We want update "Code" column with value from other table.
So, in edit mode, in "Code" column, we have <EditItemTemplate> which contains textbox and choose button.
After the choose button is pressed on, popup window appears, which contains gridview with data from codeTable. You have just focus the row which contains code value you need and press "OK".
The code value will fix in textbox in Code column, then press "Update".
Creating codeTable
Inserting data in tables
TestTable update procedure
SelectRowFromPopupWindow.aspx
SelectRowFromPopupWindow.aspx.cs
So, in edit mode, in "Code" column, we have <EditItemTemplate> which contains textbox and choose button.
After the choose button is pressed on, popup window appears, which contains gridview with data from codeTable. You have just focus the row which contains code value you need and press "OK".
The code value will fix in textbox in Code column, then press "Update".
Here is the code:
Creating testTable
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[testTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Data] [nvarchar](250) NULL,
[Status] [nvarchar](50) NULL,
[Code] [nvarchar](50) NULL,
CONSTRAINT [PK_testTable] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[testTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Data] [nvarchar](250) NULL,
[Status] [nvarchar](50) NULL,
[Code] [nvarchar](50) NULL,
CONSTRAINT [PK_testTable] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Creating codeTable
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[codeTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Code] [nvarchar](50) NOT NULL,
[City] [nvarchar](250) NOT NULL,
CONSTRAINT [PK_codeTable] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[codeTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Code] [nvarchar](50) NOT NULL,
[City] [nvarchar](250) NOT NULL,
CONSTRAINT [PK_codeTable] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Inserting data in tables
insert into testTable ([Data], [Status]) values ('Data row 1', 'Success')
insert into testTable ([Data], [Status]) values ('Data row 2', 'Fault')
insert into testTable ([Data], [Status]) values ('Data row 3', 'Success')
insert into codeTable ([Code], [City]) values ('0101', 'City 1')
insert into codeTable ([Code], [City]) values ('0102', 'City 2')
insert into codeTable ([Code], [City]) values ('0103', 'City 3')
insert into testTable ([Data], [Status]) values ('Data row 2', 'Fault')
insert into testTable ([Data], [Status]) values ('Data row 3', 'Success')
insert into codeTable ([Code], [City]) values ('0101', 'City 1')
insert into codeTable ([Code], [City]) values ('0102', 'City 2')
insert into codeTable ([Code], [City]) values ('0103', 'City 3')
TestTable update procedure
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateTestTable]
@ID int,
@Code nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
UPDATE testTable SET Code = @Code WHERE ID = @ID
END
GO
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateTestTable]
@ID int,
@Code nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
UPDATE testTable SET Code = @Code WHERE ID = @ID
END
GO
SelectRowFromPopupWindow.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SelectRowFromPopupWindow.aspx.cs" Inherits="SelectRowFromPopupWindow" %>
<%@ Register Assembly="DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxPopupControl" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.ASPxGridView.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %>
<%@ Register assembly="DevExpress.Web.ASPxEditors.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %>
<!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>
<script language="javascript" type="text/javascript">
function getFocusedLineValue() {
ASPxGridView2.GetRowValues(ASPxGridView2.GetFocusedRowIndex(), 'ID;Code', OnGetRowValues);
popupCode.Hide();
}
function OnGetRowValues(values) {
textCode.SetText(values[1]);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False"
ClientIDMode="AutoID" DataSourceID="SqlDataSource1" KeyFieldName="ID">
<SettingsEditing Mode="Inline" />
<Columns>
<dx:GridViewDataTextColumn FieldName="ID" ReadOnly="True" VisibleIndex="0" Width="50px">
<EditFormSettings Visible="False" />
<EditItemTemplate></EditItemTemplate>
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Data" VisibleIndex="1" Width="100px">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Status" VisibleIndex="2" Width="80px">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Code" VisibleIndex="3" Width="100px">
<DataItemTemplate>
<dx:ASPxLabel ID="labelCode" ClientInstanceName="labelCode" runat="server"
Text='<%# Bind("Code") %>'>
</dx:ASPxLabel>
</DataItemTemplate>
<EditItemTemplate>
<table>
<tr>
<td>
<dx:ASPxTextBox ID="textCode" ClientInstanceName="textCode"
runat="server" Text="<%#Bind('Code') %>" Width="70px">
</dx:ASPxTextBox>
</td>
<td>
<dx:ASPxButton ID="chooseCode" ClientInstanceName="chooseCode" runat="server"
AutoPostBack="false" Text="..." >
<ClientSideEvents Click="function(s,e){ popupCode.Show(); }" />
</dx:ASPxButton>
</td>
</tr>
</table>
</EditItemTemplate>
</dx:GridViewDataTextColumn>
<dx:GridViewCommandColumn VisibleIndex="4">
<EditButton Visible="True">
</EditButton>
</dx:GridViewCommandColumn>
</Columns>
</dx:ASPxGridView>
<dx:ASPxPopupControl ID="popupCode" runat="server" Modal="true" ClientInstanceName="popupCode"
PopupHorizontalAlign="WindowCenter" PopupVerticalAlign="WindowCenter" Width="300px" >
<ContentCollection>
<dx:PopupControlContentControl ID="PopupControlContentControl2" runat="server">
<dx:ASPxGridView ID="ASPxGridView2" runat="server" ClientIDMode="AutoID" ClientInstanceName="ASPxGridView2"
AutoGenerateColumns="False" DataSourceID="SqlDataSource2" KeyFieldName="ID" Width="100%">
<Columns>
<dx:GridViewDataTextColumn FieldName="ID" ReadOnly="True"
ShowInCustomizationForm="True" VisibleIndex="0">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Code" ShowInCustomizationForm="True"
VisibleIndex="1">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="City" ShowInCustomizationForm="True"
VisibleIndex="2">
</dx:GridViewDataTextColumn>
</Columns>
<SettingsBehavior AllowFocusedRow="True"/>
</dx:ASPxGridView>
<dx:ASPxButton ID="btnChoose" runat="server" Text="OK" AutoPostBack="false" ClientInstanceName="btnChoose" >
<ClientSideEvents Click="function(s, e) { getFocusedLineValue(); } "/>
</dx:ASPxButton>
</dx:PopupControlContentControl>
</ContentCollection>
</dx:ASPxPopupControl>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT [ID], [Data], [Status], [Code] FROM [testTable]"
UpdateCommand="UpdateTestTable" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="Code" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT [ID], [Code], [City] FROM [codeTable]" >
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
<%@ Register Assembly="DevExpress.Web.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxPopupControl" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.ASPxGridView.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %>
<%@ Register assembly="DevExpress.Web.ASPxEditors.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %>
<!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>
<script language="javascript" type="text/javascript">
function getFocusedLineValue() {
ASPxGridView2.GetRowValues(ASPxGridView2.GetFocusedRowIndex(), 'ID;Code', OnGetRowValues);
popupCode.Hide();
}
function OnGetRowValues(values) {
textCode.SetText(values[1]);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False"
ClientIDMode="AutoID" DataSourceID="SqlDataSource1" KeyFieldName="ID">
<SettingsEditing Mode="Inline" />
<Columns>
<dx:GridViewDataTextColumn FieldName="ID" ReadOnly="True" VisibleIndex="0" Width="50px">
<EditFormSettings Visible="False" />
<EditItemTemplate></EditItemTemplate>
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Data" VisibleIndex="1" Width="100px">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Status" VisibleIndex="2" Width="80px">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Code" VisibleIndex="3" Width="100px">
<DataItemTemplate>
<dx:ASPxLabel ID="labelCode" ClientInstanceName="labelCode" runat="server"
Text='<%# Bind("Code") %>'>
</dx:ASPxLabel>
</DataItemTemplate>
<EditItemTemplate>
<table>
<tr>
<td>
<dx:ASPxTextBox ID="textCode" ClientInstanceName="textCode"
runat="server" Text="<%#Bind('Code') %>" Width="70px">
</dx:ASPxTextBox>
</td>
<td>
<dx:ASPxButton ID="chooseCode" ClientInstanceName="chooseCode" runat="server"
AutoPostBack="false" Text="..." >
<ClientSideEvents Click="function(s,e){ popupCode.Show(); }" />
</dx:ASPxButton>
</td>
</tr>
</table>
</EditItemTemplate>
</dx:GridViewDataTextColumn>
<dx:GridViewCommandColumn VisibleIndex="4">
<EditButton Visible="True">
</EditButton>
</dx:GridViewCommandColumn>
</Columns>
</dx:ASPxGridView>
<dx:ASPxPopupControl ID="popupCode" runat="server" Modal="true" ClientInstanceName="popupCode"
PopupHorizontalAlign="WindowCenter" PopupVerticalAlign="WindowCenter" Width="300px" >
<ContentCollection>
<dx:PopupControlContentControl ID="PopupControlContentControl2" runat="server">
<dx:ASPxGridView ID="ASPxGridView2" runat="server" ClientIDMode="AutoID" ClientInstanceName="ASPxGridView2"
AutoGenerateColumns="False" DataSourceID="SqlDataSource2" KeyFieldName="ID" Width="100%">
<Columns>
<dx:GridViewDataTextColumn FieldName="ID" ReadOnly="True"
ShowInCustomizationForm="True" VisibleIndex="0">
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="Code" ShowInCustomizationForm="True"
VisibleIndex="1">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn FieldName="City" ShowInCustomizationForm="True"
VisibleIndex="2">
</dx:GridViewDataTextColumn>
</Columns>
<SettingsBehavior AllowFocusedRow="True"/>
</dx:ASPxGridView>
<dx:ASPxButton ID="btnChoose" runat="server" Text="OK" AutoPostBack="false" ClientInstanceName="btnChoose" >
<ClientSideEvents Click="function(s, e) { getFocusedLineValue(); } "/>
</dx:ASPxButton>
</dx:PopupControlContentControl>
</ContentCollection>
</dx:ASPxPopupControl>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT [ID], [Data], [Status], [Code] FROM [testTable]"
UpdateCommand="UpdateTestTable" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="Code" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT [ID], [Code], [City] FROM [codeTable]" >
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
SelectRowFromPopupWindow.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class SelectRowFromPopupWindow : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class SelectRowFromPopupWindow : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
Комментариев нет:
Отправить комментарий