473,573 Members | 2,810 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Adding a Check Box Column to a DataGrid - Cannot get example to work (ASP.NET & C#)

I tried to use the following example, to add a checkbox column to a
DataGrid in an ASP.NET application:
http://www.codeproject.com/aspnet/datagridcheckbox.asp

For some reason, I simply CAN'T get the example to work. I created the
following two classes, provided with the example:

*-*-**-*-*-*-*-*-*-*-*-*-**-*-*-*-*-CheckBoxColumn
Class:-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-**-*-*-*

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.W ebControls;
using System.Data;

namespace DataGridTest2
{
/// <summary>
/// Summary description for CheckBoxColumn.
/// </summary>
public class CheckBoxColumn
:System.Web.UI. WebControls.Tem plateColumn
{
/// <summary>
/// Initialise our CheckBoxColumn.
/// </summary>
public CheckBoxColumn( )
{
// set the view one as readonly
//viewItem = new CheckBoxItem(fa lse); // SAW was false
viewItem = new CheckBoxItem(tr ue);
this.ItemTempla te = viewItem as ITemplate;

// let the edit check box be editable
editItem = new CheckBoxItem(tr ue);
this.EditItemTe mplate = editItem as ITemplate;
}

/// <summary>
/// Initialise our CheckBoxColumn with an optional
ImmediatePostba ck capability.
/// </summary>
/// <param name="Immediate Postback">If true then each change
of state of the
/// CheckBox item
/// will cause an event to be fired immediately on the
server.</param>
public CheckBoxColumn( bool ImmediatePostba ck)
{
// set the view one as readonly
viewItem = new CheckBoxItem(Im mediatePostback );
this.ItemTempla te = viewItem as ITemplate;

// let the edit check box be editable
editItem = new CheckBoxItem(tr ue);
this.EditItemTe mplate = editItem as ITemplate;

AutoPostBack = ImmediatePostba ck;
}

/// <summary>
/// Occurs when the value of the Checked property changes
between posts to the
/// server.
/// </summary>
/// <remarks>
/// The <b>CheckedChang ed</b> event is raised when the value
of the Checked
/// property changes
/// between posts to the server.
/// <b>Note</b> This event does not post the page back to
the server unless the
/// AutoPostBack property is set to true.
/// <b>Note</b> The control must have viewstate enabled for
the
/// <b>CheckedChang ed</b> event to work correctly.
/// </remarks>
public event EventHandler CheckedChanged
{
add
{
viewItem.Checke dChanged += value;
editItem.Checke dChanged += value;
}
remove
{
viewItem.Checke dChanged -= value;
editItem.Checke dChanged -= value;
}
}

/// <summary>
/// If true then then each click on a CheckBox will cause an
event to be fired on the
/// server.
/// </summary>
public bool AutoPostBack
{
set
{
viewItem.AutoPo stBack = value;
editItem.AutoPo stBack = value;
}
get
{
return viewItem.AutoPo stBack;
}
}

/// <summary>
/// The DataField that we wish our control to bind to.
/// </summary>
public string DataField
{
get
{
return viewItem.DataFi eld;
}
set
{
viewItem.DataFi eld = value;
editItem.DataFi eld = value;
}
}

/// <summary>
/// Internal storage of the CheckBoxItem that is to be used
for the view state.
/// </summary>
private CheckBoxItem viewItem;

/// <summary>
/// Internal storage of the CheckBoxItem that is to be used for
the edit state.
/// </summary>
private CheckBoxItem editItem;
}
}
*-*-**-*-*-*-*-*-*-*-*-*-**-*-*-*-*-CheckBoxItem
Class:-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-**-*-*-*
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.W ebControls;
using System.Data;

namespace DataGridTest2
{
/// <summary>
///
/// </summary>
internal class CheckBoxItem : ITemplate
{
/// <summary>
/// The CheckBoxItem constructor
/// </summary>
/// <param name="editable" >true if the item is to be in its
editable state, false for the
/// item to be
/// disabled.</param>
public CheckBoxItem(bo ol editable)
{
readOnly = (editable==true )?false:true;
}

/// <summary>
/// Instantiates the CheckBox that we wish to represent in
this column.
/// </summary>
/// <param name="container ">The container into which the
control or controls are
/// added.</param>
void ITemplate.Insta ntiateIn(Contro l container)
{
CheckBox box = new CheckBox();
box.DataBinding += new EventHandler(th is.BindData);
box.AutoPostBac k = autoPostBack;
box.CheckedChan ged += new
EventHandler(th is.OnCheckChang ed);
container.Contr ols.Add(box);
}

/// <summary>
/// Our CheckChanged event
/// </summary>
public event EventHandler CheckedChanged;

/// <summary>
/// This is a common handler for all the Checkboxes.
/// </summary>
/// <param name="sender">T he raiser of this event a
CheckBox.</param>
/// <param name="e">A System.EventArg s that contains the
event data.</param>
private void OnCheckChanged( object sender, EventArgs e)
{
if (CheckedChanged != null)
{
CheckedChanged( sender, e);
}
}

/// <summary>
/// The internal storage for which DataField we are going to
represent.
/// </summary>
private string dataField;

/// <summary>
/// Used to set the DataField that we wish to represent with
this CheckBox.
/// </summary>
public string DataField
{
get
{
return dataField;
}
set
{
dataField=value ;
}
}

/// <summary>
/// The internal storage for the AutoPostback flag.
/// </summary>
private bool autoPostBack=fa lse;

/// <summary>
/// Set the AutoPostBack flag. If this is true then each time
a CheckBox is clicked
/// in the Column that contains this item then an event is
raised on the server.
/// </summary>
public bool AutoPostBack
{
set
{
autoPostBack = value;
}
get
{
return autoPostBack;
}
}

/// <summary>
/// Handler for the DataBinding event where we bind the data
for a specific row
/// to the CheckBox.
/// </summary>
/// <param name="sender">T he raiser of the event.</param>
/// <param name="e">A System.EventArg s that contains the
event data.</param>
private void BindData(object sender, EventArgs e)
{
CheckBox box = (CheckBox) sender;
DataGridItem container = (DataGridItem)
box.NamingConta iner;
box.Checked = false;
box.Enabled = (readOnly == true) ? false:true;
string data = ((DataRowView)
container.DataI tem)[dataField].ToString();
Type t =
((DataRowView)c ontainer.DataIt em).DataView.Ta ble.Columns
[dataField].DataType;
if (data.Length>0)
{
switch (t.ToString())
{
case "System.Boolean ":
if (( data == "True") || (data == "true"))
{
box.Checked = true;
}
break;
default:
break;
}
}
}
/// <summary>
/// Internal storage for the readOnly flag.
/// </summary>
private bool readOnly = true;
}
}
*-*-*-*-*-*-*-*-*-*-*-*-*-*Custom Control Code Behind
Page:-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*

namespace DataGridTest2
{
using System;
using System.Collecti ons;
using System.Componen tModel;
using System.Data;
using System.Data.Sql Client;
using System.Drawing;
using System.Web;
using System.Web.Sess ionState;
using System.Web.UI;
using System.Web.UI.W ebControls;
using System.Web.UI.H tmlControls;

/// <summary>
/// Summary description for OrderPickerCont rol.
/// </summary>
public class OrderPickerCont rol : System.Web.UI.U serControl
{
protected System.Web.UI.W ebControls.Data Grid DataGrid1;
SqlConnection cn;
SqlDataAdapter da;
DataSet ds;

private void Page_Load(objec t sender, System.EventArg s e)
{
cn= new SqlConnection
("Server=localh ost;uid=sa;pwd= pwd;database=te stDB");
da= new SqlDataAdapter ("SELECT CustID, IsComplete FROM
Orders ", cn);
ds= new DataSet ();
da.Fill (ds, "Orders");
DataGrid1.DataS ource =ds.Tables[0];

// Add the new column to the DataGrid
CheckBoxColumn chkColumn = new CheckBoxColumn( );

chkColumn.Heade rText = "Include?";
chkColumn.DataF ield = "IsComplete ";
//chkColumn.AutoP ostBack = true;
//chkColumn.Check edChanged +=new EventHandler(th is.o);
DataGrid1.Colum ns.Add(chkColum n);
DataGrid1.DataB ind ();
}

#region Web Form Designer generated code
override protected void OnInit(EventArg s e)
{
//
// CODEGEN: This call is required by the ASP.NET Web
Form Designer.
//
InitializeCompo nent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeCompo nent()
{
this.Load += new System.EventHan dler(this.Page_ Load);

}
#endregion
}
}
The DataGrid is bound properly, and shows the correct state of the
check boxes for the underlying SQL bit datatype field (IsComplete).
What I can't figure out is how to immediately update the database, once
a checkbox has been checked or unchecked. I was unable to determine how
to do this, based on the example. The IsComplete field contains either
0 values for false, or 1 values for true. Checking the checkbox should
change the 0 values to 1 values (and unchecking should change 1 values
to 0 values). I also want to be able to refresh the DataGrid to show
these changes. (I thought that AutoPostBack would accomplish this, but
I had no luck getting it to work.)

The worst part of it is I know that I'm probably missing something
obvious, due to my lack of experience. Needless to say, any help,
advice, snippets, etc. would be greatly appreciated.

THANKS!!!

Nov 19 '05 #1
1 4222
sianan,

I have code that shows how to find out which checkbox in the datagrid has
been checked on post back. The sample code is in vb.net, but I think you'll
be able to see what it's doing as most of it is using built in objects whos
code will look much the same as c#. If you have any trouble telling what a
routine does I'd be happy to convert that line(s) of code to c#. Just email
me with any questions.

You may find the sample code at:
http://www.aboutfortunate.com?page=codelibrary

Use the search box there to search for: "checkbox in datagrid"

--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
"sianan" <sm*********@td s.net> wrote in message
news:11******** **************@ o13g2000cwo.goo glegroups.com.. .
I tried to use the following example, to add a checkbox column to a
DataGrid in an ASP.NET application:
http://www.codeproject.com/aspnet/datagridcheckbox.asp

For some reason, I simply CAN'T get the example to work. I created the
following two classes, provided with the example:

*-*-**-*-*-*-*-*-*-*-*-*-**-*-*-*-*-CheckBoxColumn
Class:-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-**-*-*-*

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.W ebControls;
using System.Data;

namespace DataGridTest2
{
/// <summary>
/// Summary description for CheckBoxColumn.
/// </summary>
public class CheckBoxColumn
:System.Web.UI. WebControls.Tem plateColumn
{
/// <summary>
/// Initialise our CheckBoxColumn.
/// </summary>
public CheckBoxColumn( )
{
// set the view one as readonly
//viewItem = new CheckBoxItem(fa lse); // SAW was false
viewItem = new CheckBoxItem(tr ue);
this.ItemTempla te = viewItem as ITemplate;

// let the edit check box be editable
editItem = new CheckBoxItem(tr ue);
this.EditItemTe mplate = editItem as ITemplate;
}

/// <summary>
/// Initialise our CheckBoxColumn with an optional
ImmediatePostba ck capability.
/// </summary>
/// <param name="Immediate Postback">If true then each change
of state of the
/// CheckBox item
/// will cause an event to be fired immediately on the
server.</param>
public CheckBoxColumn( bool ImmediatePostba ck)
{
// set the view one as readonly
viewItem = new CheckBoxItem(Im mediatePostback );
this.ItemTempla te = viewItem as ITemplate;

// let the edit check box be editable
editItem = new CheckBoxItem(tr ue);
this.EditItemTe mplate = editItem as ITemplate;

AutoPostBack = ImmediatePostba ck;
}

/// <summary>
/// Occurs when the value of the Checked property changes
between posts to the
/// server.
/// </summary>
/// <remarks>
/// The <b>CheckedChang ed</b> event is raised when the value
of the Checked
/// property changes
/// between posts to the server.
/// <b>Note</b> This event does not post the page back to
the server unless the
/// AutoPostBack property is set to true.
/// <b>Note</b> The control must have viewstate enabled for
the
/// <b>CheckedChang ed</b> event to work correctly.
/// </remarks>
public event EventHandler CheckedChanged
{
add
{
viewItem.Checke dChanged += value;
editItem.Checke dChanged += value;
}
remove
{
viewItem.Checke dChanged -= value;
editItem.Checke dChanged -= value;
}
}

/// <summary>
/// If true then then each click on a CheckBox will cause an
event to be fired on the
/// server.
/// </summary>
public bool AutoPostBack
{
set
{
viewItem.AutoPo stBack = value;
editItem.AutoPo stBack = value;
}
get
{
return viewItem.AutoPo stBack;
}
}

/// <summary>
/// The DataField that we wish our control to bind to.
/// </summary>
public string DataField
{
get
{
return viewItem.DataFi eld;
}
set
{
viewItem.DataFi eld = value;
editItem.DataFi eld = value;
}
}

/// <summary>
/// Internal storage of the CheckBoxItem that is to be used
for the view state.
/// </summary>
private CheckBoxItem viewItem;

/// <summary>
/// Internal storage of the CheckBoxItem that is to be used for
the edit state.
/// </summary>
private CheckBoxItem editItem;
}
}
*-*-**-*-*-*-*-*-*-*-*-*-**-*-*-*-*-CheckBoxItem
Class:-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-**-*-*-*
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.W ebControls;
using System.Data;

namespace DataGridTest2
{
/// <summary>
///
/// </summary>
internal class CheckBoxItem : ITemplate
{
/// <summary>
/// The CheckBoxItem constructor
/// </summary>
/// <param name="editable" >true if the item is to be in its
editable state, false for the
/// item to be
/// disabled.</param>
public CheckBoxItem(bo ol editable)
{
readOnly = (editable==true )?false:true;
}

/// <summary>
/// Instantiates the CheckBox that we wish to represent in
this column.
/// </summary>
/// <param name="container ">The container into which the
control or controls are
/// added.</param>
void ITemplate.Insta ntiateIn(Contro l container)
{
CheckBox box = new CheckBox();
box.DataBinding += new EventHandler(th is.BindData);
box.AutoPostBac k = autoPostBack;
box.CheckedChan ged += new
EventHandler(th is.OnCheckChang ed);
container.Contr ols.Add(box);
}

/// <summary>
/// Our CheckChanged event
/// </summary>
public event EventHandler CheckedChanged;

/// <summary>
/// This is a common handler for all the Checkboxes.
/// </summary>
/// <param name="sender">T he raiser of this event a
CheckBox.</param>
/// <param name="e">A System.EventArg s that contains the
event data.</param>
private void OnCheckChanged( object sender, EventArgs e)
{
if (CheckedChanged != null)
{
CheckedChanged( sender, e);
}
}

/// <summary>
/// The internal storage for which DataField we are going to
represent.
/// </summary>
private string dataField;

/// <summary>
/// Used to set the DataField that we wish to represent with
this CheckBox.
/// </summary>
public string DataField
{
get
{
return dataField;
}
set
{
dataField=value ;
}
}

/// <summary>
/// The internal storage for the AutoPostback flag.
/// </summary>
private bool autoPostBack=fa lse;

/// <summary>
/// Set the AutoPostBack flag. If this is true then each time
a CheckBox is clicked
/// in the Column that contains this item then an event is
raised on the server.
/// </summary>
public bool AutoPostBack
{
set
{
autoPostBack = value;
}
get
{
return autoPostBack;
}
}

/// <summary>
/// Handler for the DataBinding event where we bind the data
for a specific row
/// to the CheckBox.
/// </summary>
/// <param name="sender">T he raiser of the event.</param>
/// <param name="e">A System.EventArg s that contains the
event data.</param>
private void BindData(object sender, EventArgs e)
{
CheckBox box = (CheckBox) sender;
DataGridItem container = (DataGridItem)
box.NamingConta iner;
box.Checked = false;
box.Enabled = (readOnly == true) ? false:true;
string data = ((DataRowView)
container.DataI tem)[dataField].ToString();
Type t =
((DataRowView)c ontainer.DataIt em).DataView.Ta ble.Columns
[dataField].DataType;
if (data.Length>0)
{
switch (t.ToString())
{
case "System.Boolean ":
if (( data == "True") || (data == "true"))
{
box.Checked = true;
}
break;
default:
break;
}
}
}
/// <summary>
/// Internal storage for the readOnly flag.
/// </summary>
private bool readOnly = true;
}
}
*-*-*-*-*-*-*-*-*-*-*-*-*-*Custom Control Code Behind
Page:-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*

namespace DataGridTest2
{
using System;
using System.Collecti ons;
using System.Componen tModel;
using System.Data;
using System.Data.Sql Client;
using System.Drawing;
using System.Web;
using System.Web.Sess ionState;
using System.Web.UI;
using System.Web.UI.W ebControls;
using System.Web.UI.H tmlControls;

/// <summary>
/// Summary description for OrderPickerCont rol.
/// </summary>
public class OrderPickerCont rol : System.Web.UI.U serControl
{
protected System.Web.UI.W ebControls.Data Grid DataGrid1;
SqlConnection cn;
SqlDataAdapter da;
DataSet ds;

private void Page_Load(objec t sender, System.EventArg s e)
{
cn= new SqlConnection
("Server=localh ost;uid=sa;pwd= pwd;database=te stDB");
da= new SqlDataAdapter ("SELECT CustID, IsComplete FROM
Orders ", cn);
ds= new DataSet ();
da.Fill (ds, "Orders");
DataGrid1.DataS ource =ds.Tables[0];

// Add the new column to the DataGrid
CheckBoxColumn chkColumn = new CheckBoxColumn( );

chkColumn.Heade rText = "Include?";
chkColumn.DataF ield = "IsComplete ";
//chkColumn.AutoP ostBack = true;
//chkColumn.Check edChanged +=new EventHandler(th is.o);
DataGrid1.Colum ns.Add(chkColum n);
DataGrid1.DataB ind ();
}

#region Web Form Designer generated code
override protected void OnInit(EventArg s e)
{
//
// CODEGEN: This call is required by the ASP.NET Web
Form Designer.
//
InitializeCompo nent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeCompo nent()
{
this.Load += new System.EventHan dler(this.Page_ Load);

}
#endregion
}
}
The DataGrid is bound properly, and shows the correct state of the
check boxes for the underlying SQL bit datatype field (IsComplete).
What I can't figure out is how to immediately update the database, once
a checkbox has been checked or unchecked. I was unable to determine how
to do this, based on the example. The IsComplete field contains either
0 values for false, or 1 values for true. Checking the checkbox should
change the 0 values to 1 values (and unchecking should change 1 values
to 0 values). I also want to be able to refresh the DataGrid to show
these changes. (I thought that AutoPostBack would accomplish this, but
I had no luck getting it to work.)

The worst part of it is I know that I'm probably missing something
obvious, due to my lack of experience. Needless to say, any help,
advice, snippets, etc. would be greatly appreciated.

THANKS!!!

Nov 19 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
3622
by: Clayton Hamilton | last post by:
I have a DataGrid on a webform bound to a Datasource and can successfully use <ItemTemplate> to create edit/update/cancel functionality for user maintenance of data. I use separate logic to delete a row. Everything works just fine. BUT I would like to add a button to (for example) the DataGrid header, which when pressed will add a new...
6
3227
by: Robert Schuldenfrei | last post by:
Dear NG, After being away from C# programming for a spell, I am trying my hand at what should be a simple task. I have been hitting my head against the wall this morning. I have a simple order entry application. The code below gets line items from a SQL Server database and returns them to a datagrid by way of a DataTable called...
3
4864
by: Jim Heavey | last post by:
Trying to figure out the technique which should be used to add rows to a datagrid. I am thinking that I would want an "Add" button on the footer, but I am not quite sure how to do that. Is that the best method? Do you have a sample of how to do this?
3
1942
by: Robin Thomas | last post by:
I am fairly new to ASP.NET so I think I am missing something fundamental. Anyway, quite often I am pulling data from a database, but then I need to use that data to produce more data. A simple example would be: Let's say Column1=StartDate and Column2=EndDate. In addition to displaying Column1 and Column2, I need to do some calculations and...
1
3267
by: Andrew | last post by:
Hey all, I am very new to ASP.Net (and .Net in general), but that isn't stopping the boss from wanting to begin new projects in it. This latest project has me kinda stumped and after a couple days of struggling, I figure asking you all (the experts) will keep me from going down some dark and dangerous road. The project I have is a fairly...
1
2214
by: VB Programmer | last post by:
I have a datagrid which is bound to a datatable that I create on the fly. How do I set the width of each column via code? Ex: Column 1 is always 100, Column 2 is always 250, etc... Thanks!
4
1903
by: Craig G | last post by:
i was using the following on a serverside button on a form If (Not Page.IsPostBack) Then Me.BtnDelete.Attributes.Add("onclick","return confirm('Are you sure you want to delete?');") End If but was wondering how i would go about doing the same for a button within a column? i cannot see btnDelete in the code-behind page
1
1482
by: RN | last post by:
Hi. I used this article to add a template column to a datagrid that is entirely created with code: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingtemplatesprogrammaticallyindatagridcontrol.asp It works fine except for one thing. My template column needs a field in the recordset that binds to the...
9
6094
by: Steve | last post by:
How I can remove an AutoGenerated column? I wnat to inlcude the primary key in the resultset for creating some custom LinkButtons, but I don't want it (the PK) displayed in the DataGrid. I tried searching the columnheader text, but found that AutoGenerated columns are members of the Columns collection. From the msdn documentation: Note: ...
0
8037
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
8213
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
1
7799
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
8080
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
1
5604
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5296
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3742
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2226
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1320
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.