DataTable Static
Boa noite estou com um problema ao criar um DataTable, eu não queria utilizar ViewState para manter seu estado, dei uma pesquisada e descobri que seria possivel utilizar um DataTable static: (private static DataTable dt).
Porém o grande problema é que o conteúdo está sendo listado em todos os lugares, exemplo se eu rodar minha aplicação em um navegador e preencher o DataTable quando eu abrir outro navegador e adicionar dados os dados tornam a ser únicos toda vez que sofrer alterações ambos navegadores sofrerão.
Torno a dizer gostaria que me ajudassem a solucionar sem utilizar algum objeto para manter seu estado (ViewState, Session...).
Segue código abaixo:
Default.aspx:
--------------------------------------------------------------------------------------------------------------------------------------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DataStatic._Default" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<br />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>
--------------------------------------------------------------------------------------------------------------------------------------------------
Default.aspx.cs
-------------------------------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace DataStatic
{
public partial class _Default : System.Web.UI.Page
{
protected static DataTable _dt;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
_dt = new DataTable();
DataTableReader reader = new DataTableReader(GetCustomers());
_dt.Load(reader);
}
}
private static DataTable GetCustomers()
{
DataTable table = new DataTable();
table.Columns.Add("col1");
return table;
}
protected void Button1_Click(object sender, EventArgs e)
{
DataRow row = _dt.NewRow();
_dt.Rows.Add(row);
row["col1"] = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
GridView1.DataSource = _dt;
GridView1.DataBind();
}
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------
Obrigado
Porém o grande problema é que o conteúdo está sendo listado em todos os lugares, exemplo se eu rodar minha aplicação em um navegador e preencher o DataTable quando eu abrir outro navegador e adicionar dados os dados tornam a ser únicos toda vez que sofrer alterações ambos navegadores sofrerão.
Torno a dizer gostaria que me ajudassem a solucionar sem utilizar algum objeto para manter seu estado (ViewState, Session...).
Segue código abaixo:
Default.aspx:
--------------------------------------------------------------------------------------------------------------------------------------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DataStatic._Default" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<br />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>
--------------------------------------------------------------------------------------------------------------------------------------------------
Default.aspx.cs
-------------------------------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace DataStatic
{
public partial class _Default : System.Web.UI.Page
{
protected static DataTable _dt;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
_dt = new DataTable();
DataTableReader reader = new DataTableReader(GetCustomers());
_dt.Load(reader);
}
}
private static DataTable GetCustomers()
{
DataTable table = new DataTable();
table.Columns.Add("col1");
return table;
}
protected void Button1_Click(object sender, EventArgs e)
{
DataRow row = _dt.NewRow();
_dt.Rows.Add(row);
row["col1"] = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
GridView1.DataSource = _dt;
GridView1.DataBind();
}
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------
Obrigado
Valter Vinicius
Curtidas 0