1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

grid manual generica c#

Discussão em 'Web Development' iniciada por alfinete, 22 de Maio de 2008. (Respostas: 2; Visualizações: 1163)

  1. alfinete

    alfinete Power Member

    estou em asp.net c#

    estou a tentar fazer uma classe que me vai desenhar uma grid a passar os dados para a mesma atraves de uma datatable

    tenho quatro files

    2 classes

    pressistencia.cs -> contem os metodos das datatables, etc
    grid.cs -> contem os metodos da criação da grid

    2 ficheriros os do formulario

    grid.aspx
    grid.aspx.cs



    conteudo dos files:

    pressistencia.cs ---------------------------------------------------------------

    Código:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    namespace Sabatica
    {
        public class pressistencia
        {
    
            #region objectos
            
            private DataTable dthabilit;
            private bool existe ;
            public identificacaocandidato Icandidado;
            public situacaocandidato Scandidato;
            public projecto_investigacao Cprojectoinv;
            public mestrado Cmestrado;
            public doutoramento Cdoutoramento;
            public freqcursoespecializado Cfreqcursoespecializado;
            private string[,] perguntas= new string [36,8]; 
          
    
           
    
            public DataTable dttabelatabelahabilitacoes;
            private string grau, curso,area_cient,instit_ensino,data_conclusao,classific;
            private int idhabilit;
    
            public DataTable dttabelaoutrasformacoes;
            private string curso_outraf, instit, data;
            private int idoutraform;
    
            public DataTable dttabelaobrasrelevantes;
            private string anoob, titulo, editora;
            private int idobrasrelevantes;
    
    
            public DataTable dttabelaaccoes_formacao;
            private string anoescolar, designacao, entidade, num_horas;
            private int idaccaoform;
    
    
               #endregion
    
    
    
            #region metodos
    
            public pressistencia()
            {
    
                criatabelahabilitacoes();
                criatabelaoutrasformacoes();
                criatabelatabelaobrasrelevantes();
                criatabelaaccoes_formacao();
    
                Icandidado = new identificacaocandidato() ;
                Scandidato = new situacaocandidato();
                Cprojectoinv = new projecto_investigacao();
                Cmestrado = new mestrado ();
                Cdoutoramento = new doutoramento ();
                Cfreqcursoespecializado = new freqcursoespecializado ();
            }
    
         
            /*****************************************************************************************/
            /******************************** Tabela Obras relevantes ********************************/
            /*****************************************************************************************/
    
            public void criatabelatabelaobrasrelevantes()
            {
    
                dttabelaobrasrelevantes = new DataTable("obrasrelevantes");
    
                DataColumn idobrasrelevantes = new DataColumn("idobrasrelevantes");
                idobrasrelevantes.DataType = System.Type.GetType("System.Int32");
                idobrasrelevantes.AutoIncrement = true;
                idobrasrelevantes.AutoIncrementSeed = 1;
                idobrasrelevantes.AutoIncrementStep = 1;
                dttabelaobrasrelevantes.Columns.Add(idobrasrelevantes);
    
                DataColumn anoob = new DataColumn("anoob");
                anoob.DataType = System.Type.GetType("System.String");
                dttabelaobrasrelevantes.Columns.Add(anoob);
    
                DataColumn titulo = new DataColumn("titulo");
                titulo.DataType = System.Type.GetType("System.String");
                dttabelaobrasrelevantes.Columns.Add(titulo);
    
                DataColumn editora = new DataColumn("editora");
                editora.DataType = System.Type.GetType("System.String");
                dttabelaobrasrelevantes.Columns.Add(editora);
                dttabelaobrasrelevantes.PrimaryKey = new DataColumn[] { dttabelaobrasrelevantes.Columns["idobrasrelevantes"] };
            }
    
            /*****************************************************************************************/
            /******************************** Tabela habilitações ********************************/
            /*****************************************************************************************/
            public void criatabelahabilitacoes()
            {
    
                dttabelatabelahabilitacoes = new DataTable("habilitacoes");
                
                DataColumn idhabilit = new DataColumn("idhabilit");
                idhabilit.DataType = System.Type.GetType("System.Int32");
                idhabilit.AutoIncrement = true;
                idhabilit.AutoIncrementSeed = 1;
                idhabilit.AutoIncrementStep = 1;
                dttabelatabelahabilitacoes.Columns.Add(idhabilit);
                //dttabelatabelahabilitacoes.Columns.Add(idhabilit);
    
                DataColumn grau = new DataColumn("grau");
                grau.DataType = System.Type.GetType("System.String");
                dttabelatabelahabilitacoes.Columns.Add(grau);
    
                DataColumn curso = new DataColumn("curso");
                curso.DataType = System.Type.GetType("System.String");
                dttabelatabelahabilitacoes.Columns.Add(curso);
    
                DataColumn area_cient = new DataColumn("area_cient");
                area_cient.DataType = System.Type.GetType("System.String");
                dttabelatabelahabilitacoes.Columns.Add(area_cient);
    
                DataColumn instit_ensino = new DataColumn("instit_ensino");
                instit_ensino.DataType = System.Type.GetType("System.String");
                dttabelatabelahabilitacoes.Columns.Add(instit_ensino);
    
                DataColumn data_conclusao = new DataColumn("data_conclusao");
                data_conclusao.DataType = System.Type.GetType("System.String");
                dttabelatabelahabilitacoes.Columns.Add(data_conclusao);
    
                DataColumn classific = new DataColumn("classific");
                classific.DataType = System.Type.GetType("System.String");
                dttabelatabelahabilitacoes.Columns.Add(classific);
    
                dttabelatabelahabilitacoes.PrimaryKey = new DataColumn[]{dttabelatabelahabilitacoes.Columns["idhabilit"]};
                //DataColumn[] columns = new DataColumn[] { idhabilit, grau, curso, area_cient, instit_ensino, data_conclusao, classific };
            }
    
    
            /*****************************************************************************************/
            /******************************** Tabela outras formações********************************/
            /*****************************************************************************************/
    
            public void criatabelaoutrasformacoes()
            {
    
                dttabelaoutrasformacoes = new DataTable("outrasformacoes");
    
                DataColumn idoutraform = new DataColumn("idoutraform");
                idoutraform.DataType = System.Type.GetType("System.Int32");
                idoutraform.AutoIncrement = true;
                idoutraform.AutoIncrementSeed = 1;
                idoutraform.AutoIncrementStep = 1;
                dttabelaoutrasformacoes.Columns.Add(idoutraform);
    
                DataColumn curso_outraf = new DataColumn("curso_outraf");
                curso_outraf.DataType = System.Type.GetType("System.String");
                dttabelaoutrasformacoes.Columns.Add(curso_outraf);
    
                DataColumn instit = new DataColumn("instit");
                instit.DataType = System.Type.GetType("System.String");
                dttabelaoutrasformacoes.Columns.Add(instit);
    
                DataColumn data = new DataColumn("data");
                data.DataType = System.Type.GetType("System.String");
                dttabelaoutrasformacoes.Columns.Add(data);
    
                dttabelaoutrasformacoes.PrimaryKey = new DataColumn[] { dttabelaoutrasformacoes.Columns["idoutraform"] };
    
            }
    
    
            /*****************************************************************************************/
            /******************************** acçoes de formação  8 anos ********************************/
            /*****************************************************************************************/
    
            public void criatabelaaccoes_formacao()
            {
    
                dttabelaaccoes_formacao = new DataTable("accoes_formacao");
    
                DataColumn idaccaoform = new DataColumn("idaccaoform");
                idaccaoform.DataType = System.Type.GetType("System.Int32");
                idaccaoform.AutoIncrement = true;
                idaccaoform.AutoIncrementSeed = 1;
                idaccaoform.AutoIncrementStep = 1;
                dttabelaaccoes_formacao.Columns.Add(idaccaoform);
    
                DataColumn anoescolar = new DataColumn("anoescolar");
                anoescolar.DataType = System.Type.GetType("System.String");
                dttabelaaccoes_formacao.Columns.Add(anoescolar);
    
                DataColumn designacao = new DataColumn("designacao");
                designacao.DataType = System.Type.GetType("System.String");
                dttabelaaccoes_formacao.Columns.Add(designacao);
    
                DataColumn entidade = new DataColumn("entidade");
                entidade.DataType = System.Type.GetType("System.String");
                dttabelaaccoes_formacao.Columns.Add(entidade);
    
                DataColumn num_horas = new DataColumn("num_horas");
                num_horas.DataType = System.Type.GetType("System.String");
                dttabelaaccoes_formacao.Columns.Add(num_horas);
    
                dttabelaaccoes_formacao.PrimaryKey = new DataColumn[] { dttabelaaccoes_formacao.Columns["idaccaoform"] };
            }
    
            
       
    
           
    
           
           
            #endregion 
            
            
         
    
            // drob down do objecto licensa
            public void ddl(System.Web.UI.WebControls.DropDownList ddl)
            {
                if (ddl.SelectedValue == "0")
                {
    
                }
    
                if (ddl.SelectedValue == "1")
                {
                    HttpContext.Current.Response.Redirect("objectolicensaf1.aspx");
                    //Response.Redirect("objectolicensaf1.aspx");
                }
                if (ddl.SelectedValue == "2")
                {
                    HttpContext.Current.Response.Redirect("objectolicensaf2.aspx");
                    //Response.Redirect("objectolicensaf2.aspx");
                }
                if (ddl.SelectedValue == "3")
                {
                    HttpContext.Current.Response.Redirect("objectolicensaf3.aspx");
                    //Response.Redirect("objectolicensaf3.aspx");
                }
    
                if (ddl.SelectedValue == "4")
                {
                    HttpContext.Current.Response.Redirect("objectolicensaf4.aspx");
                    //Response.Redirect("objectolicensaf4.aspx");
                }
            }
    
            public struct identificacaocandidato
            {
                
               public string nome;
               public string docidentificacao;
               public string numdoc;
               public DateTime data_nasc;
               public string genero;
               public string nacionalidade;
               public string nif;
               public string morada;
               public string localidade;
               public string pais;
               public string regiao;
               public string telefone;
               public string email;
            
            }
    
            public struct situacaocandidato
            {
                public int qeqzp;
                public string qzp;
                public int numescolaafecto;
                public string nomeescolaafecto;
                public string dreescolaafecto;
                public string qzpescolaafecto;
    
                public int numescolapertence;
                public string nomeescolapertence;
                public string dreescolapertence;
                public string qzpescolapertence;
    
                public string gruporecrutamentoddl;
                public string gruporecrutamentotxt;
                public string cargahorariasemanal;
                public string anos8interruptos;
                public string mencaoobtida;
                public string exercicioafectivo;
                public string casobenificiado;
                public string licensaanoescolar;
                public string licensarequeridareducao;
                
            }
    
           // guarda dados de projecto investigação referentes aoformulario f
    
            public struct projecto_investigacao
            { 
            public string tema;
            public string objectivos;
            public string metodologia;
            public string calendarizacao;
            public string certificado;
             
            }
    
            // guarda dados de mestrado referentes aoformulario f
            public struct mestrado
            {
            public string curso;
            public string instituicao;
            public string datapreinsc;
            public string datamatricaceita;
            public string tema ;
            public string objectivos;
            public string metodologia;
            public string calendarizacao;
            public string plano;
            }
    
            // guarda dados de doutoramento referentes aoformulario f
            public struct doutoramento
            { 
            public string curso;
            public string instituicao;
            public DateTime datapreinsc;
            public DateTime datamatricaceita;
            public string tema ;
            public string objectivos;
            public string metodologia;
            public string calendarizacao;
            public string plano;
            }
    
            // guarda dados de frequencia de curso especializado referentes aoformulario f
             public struct freqcursoespecializado
             {
             public string curso;
             public string instituicao;
             public DateTime datapreinst;
             public DateTime matriculaaceit;
             public string planoestudos;
             public DateTime calenddatainicio;
             public DateTime calenddatatermo;
             public string cargahorariasemanal;
             public string objectivos;
             }
    
    
    
             public DataRow procura_reghabilitacoes(string codigo)
             {
               DataRow rowFoundRow;
               
               rowFoundRow = dttabelatabelahabilitacoes.Rows.Find(codigo);
               if (rowFoundRow != null)
                 existe = true;
               return rowFoundRow;
             }
    
    
             public DataRow procura_regoutrasform(string codigo)
            {
                DataRow rowFoundRow;
    
                rowFoundRow = dttabelaoutrasformacoes.Rows.Find(codigo);
                if (rowFoundRow != null)
                    existe = true;
                return rowFoundRow;
            }
    
             public DataRow procura_obras_relev(string codigo)
            {
                DataRow rowFoundRow;
    
                rowFoundRow = dttabelaobrasrelevantes.Rows.Find(codigo);
                if (rowFoundRow != null)
                    existe = true;
                return rowFoundRow;
            }
    
             public DataRow procura_Accoes_form8anos(string codigo )
             {
                DataRow rowFoundRow;
    
                rowFoundRow = dttabelaaccoes_formacao.Rows.Find(codigo);
                if (rowFoundRow != null)
                    existe = true;
                return rowFoundRow;
             }
    
          
    
    
    
            #region propriedades
    
            public string[,] Perguntas
             {
              get { return perguntas; }
              set { perguntas = value; }
             }
    
            #endregion
    
        }
    }
    
    

    grid.cs ----------------------------------------------------------------


    Código:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    namespace Sabatica
    {
        public class grid
        {
    
            private string tabela = "";
            private string tabelatab = "";
            private DataTable dt;
         
    
    
            public string paginaDados(DataTable dt, string[] colunastab, int numcolunas)
            {
                string str = "";
                string work = "";
               // totalarray = colunastab;
    
    
    
                       if (dt.Rows.Count > 0)
                       {
    
                         work = "<tr>";
                        
                        foreach (DataRow row in dt.Rows )
                        {
                           for (int i = 0; i < numcolunas; i++)
                            {
                                work += "<td class=\"tdr1h\">";
                                work += row["" + colunastab[i] + ""];
                                work += "</td>";
                            }
                        }
                        work += "</tr>";
                        str += work;
                    }
                return str;
            }
    
    
            public void pageTable(DataTable dt, string[] colunas, string[] colunastab, int numcolunas)
            {
                string str = "";
          
                str = "<table id=\"tblPaging\" border=\"1\" cellspacing=\"0\" rules=\"all\" class=\"tabela_estilo\" summary=\"Várias habilatações já introduzidas.\">";
                str += "<tr class=\"gvHeader\">";
    
                for (int i = 0; i < numcolunas; i++)
                {
                    str += "<th scope=\"col\">" + colunas[i] + " </th>";
                }
                str += "</tr>";
                str += paginaDados(dt, colunastab, numcolunas);
                str += "</table>";
                tabela = str;
            }
    
    
    
           public string Tabela
            {
              get { return tabela; }
              set { tabela = value; }
            }
    
    
        }
    }
    
    
    
    
    grid.aspx --------------------------------------------------------------------------


    Código:
    
    
    
    <%@ Page Language="C#" theme="base" MasterPageFile="~/base.Master" AutoEventWireup="true" CodeBehind="grid.aspx.cs" Inherits="Sabatica.grid1" Title="Untitled Page" %>
    
    
    
    <asp:Content ID="Content1" ContentPlaceHolderID="content_sabatica" runat="server">
    
    <fieldset >
    <legend>iNSERSÃO DE DADOS</legend>
       <div >
           <asp:Label ID="Label1" runat="server" Text="Grau"></asp:Label><asp:TextBox ID="txt1" runat="server"></asp:TextBox>
          
           <asp:Label ID="Label2" runat="server" Text="Curso"></asp:Label><asp:TextBox ID="txt2" runat="server"></asp:TextBox>
          <br />
           <asp:Label ID="Label3" runat="server" Text="A.cient."></asp:Label><asp:TextBox ID="txt3" runat="server"></asp:TextBox>
           <asp:Label ID="Label4" runat="server" Text="I.ensino"></asp:Label><asp:TextBox ID="txt4" runat="server"></asp:TextBox>
           <br />
           <asp:Label ID="Label5" runat="server" Text="Data"></asp:Label><asp:TextBox ID="txt5" runat="server"></asp:TextBox>
           <asp:Label ID="Label6" runat="server" Text="Class"></asp:Label><asp:TextBox ID="txt6" runat="server"></asp:TextBox>
           <br />
           <asp:Button ID="btninserir" runat="server" Text="Insrir" OnClick="btninserir_Click" />
       </div>
    </fieldset>
    
    <fieldset >
    <legend>LISTA DE DADOS</legend>
        <div >
           <%= tabela %>
       </div>
    </fieldset> 
      
    </asp:Content>
    
    
    
    
    



    grid.aspx.cs -----------------------------------------------------------------------



    Código:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    namespace Sabatica
    {
        public partial class grid1 : System.Web.UI.Page
        {
            protected string tabela = "";
            protected string tabelatab = "";
            private string[] colunas = new string[6] { "grau", "curso", "A.cient", "I. ensino", "data", "classific" };
            private string[] colunastab = new string[6] { "grau", "curso", "area_cient", "instit_ensino","data_conclusao","classific" };
            DataRow row;
    
            private DataTable dt;
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    //load_grid();
                    pressistencia persis = new pressistencia();
                    Session["p"] = persis;
                }
            }
    
           protected void btninserir_Click(object sender, EventArgs e)
                 {
                     pressistencia persis = (pressistencia)Session["p"];
                     dt = persis.dttabelatabelahabilitacoes;
                     
                        row = dt.NewRow();
                        row["" + colunastab[0] + ""] =txt1.Text.Trim ()  ;
                        row["" + colunastab[1] + ""] = txt2.Text.Trim();
                        row["" + colunastab[2] + ""] = txt3.Text.Trim();
                        row["" + colunastab[3] + ""] = txt4.Text.Trim();
                        row["" + colunastab[4] + ""] = txt5.Text.Trim();
                        row["" + colunastab[5] + ""] = txt6.Text.Trim();
                        dt.Rows.Add(row);
                        dt.AcceptChanges();
                        Session["p"] = persis;
                        load_grid();
                    }
    
            private void load_grid()
            {
                grid gr = new grid();
                         
                gr.pageTable(dt, colunas, colunastab, 6);
                tabela = gr.Tabela;
            
            }
    
        }
    }
    
    
    
    

    problema?

    como ja devem ter percebido tenho um formulario grid aspx, que tem nas campos onde inserimos strings que vão ser inseridos numa datatable contida na classe pressistencia, e depois são vistos numa grid puxada atraves da classe grid.

    quanto a insersão dos dados para a datateble corre tdo bem, quando a formação da grid tb corre tudo bem

    mas ao inserir o 2º reg e poe numa linha nova em frente a do primeiro, e eu quero que ele ponha numa linha nova por debaixo do primeiro (acho que deve ser um problema na construção da grid, )

    agradecia um help referente a este assunto.

    obrigada
     
  2. alfinete

    alfinete Power Member

    Código:
     private string[] colunas = new string[6] { "grau", "curso", "A.cient", "I. ensino", "data", "classific" };
            private string[] colunastab = new string[6] { "grau", "curso", "area_cient", "instit_ensino","data_conclusao","classific" };
    private string[] colunas , esta a guardar o nome das colunas da tabela em desenho

    private string[] colunastab
    esta a guardar o nome daq colunas da tabela da datatable
     
  3. alfinete

    alfinete Power Member

    Código:
     public string paginaDados(DataTable dt, string[] colunastab, int numcolunas)
            {
                
                string str = "";
                string work = "";
            
                if (dt.Rows.Count > 0)
                {
                
                    foreach (DataRow row in dt.Rows)
                    {
                        work = "<tr>";
                        for (int i = 0; i < numcolunas; i++)
                        {
                          
                                work += "<td class=\"tdrc1\">";
                                work += row["" + colunastab[i] + ""];
                                work += "</td>";
                          
                        }
                      
                        work += "</tr>";
                        str += work;
                    }
                 
                }
                return str;
            }
    
    

    problema resolvido basta alterar o pagina dados como o posto a cima
     

Partilhar esta Página