Jump to content

Inserir valores do Textbox para GridView sem perder os outros informados


kelsch.cristiano
 Share

Recommended Posts

Estou com o seguinte código mais não dá certo, sempre fica com o ultimoo valor, só uma linha

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 WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        private DataTable dt = new DataTable("tesr");

        protected void Page_Load(object sender, EventArgs e)
        {
            dt.Columns.Add("code", typeof(string));
            dt.Columns.Add("name", typeof(string));
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            dt.Rows.Add(TextBox1.Text, TextBox2.Text);
            GridView1.DataSource = dt;
            GridView1.DataBind();

        }
    }
}
Link to comment
Share on other sites

Bom dia,

O que está a acontecer é que devido ao postback da página, esta sempre a ser efectuada a criação da DataTable;

private DataTable dt = new DataTable("tesr");

O que deveria fazer seria criar a DataTable no PageLoad

protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

          DataTable dt = new DataTable("tesr");

     

            dt.Columns.Add("code", typeof(string));

            dt.Columns.Add("name", typeof(string));

           

            Session.add("tesr",dt);

        }

}

protected void Button1_Click(object sender, EventArgs e)

        {

            DataTable dt = (DataTable)Session["tesr"];

            dt.Rows.Add(TextBox1.Text, TextBox2.Text);

            GridView1.DataSource = dt;

            GridView1.DataBind();

        }

Desta forma os valores ficam sempre guardados

Link to comment
Share on other sites

show de bola funcionou 👍 ,

no caso hoje tenho os dois campos acima do meu gridview, eu queria que esses dois campos fossem dentro do próprio gridview e a cada informação que eu terminar de colocar ele criar uma nova linha abaixo para mim poder ir informando novamente outro item.

tem como?

abraço

Link to comment
Share on other sites

Blz, assim ó

antes eu tinha esse código aqui para ir jogando para dentro do GridView os valores dos campos que eu informava dentro de dois textbox com colunas fixas "code" e "name".

Só que agora eu tenho no meu gridview um sqlDataSource fazendo um select na minha tabela de material com as seguintes colunas "Codigo,Nome,Preco" lembrando que o código é auto incremento então não me importa se é informado algo ou não mais ele incrementa sozinho. só tenho textbox para nome do material e o preco. Queria ver como faço para ir informando no textbox e ir gravando na tabela, atualizar eu sempre faço o databind(); só preciso saber como que insiro.

namespace WebApplication2
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                DataTable dt = new DataTable("tesr");

                dt.Columns.Add("code", typeof(string));
                dt.Columns.Add("name", typeof(string));

                Session.Add("tesr", dt);
            }
        }

        protected void btnGravar_Click(object sender, EventArgs e)
        {
            DataTable dt = (DataTable)Session["tesr"];
            dt.Rows.Add(txtMaterial.Text, txtPreco.Text);
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
    }
}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.