1° Deixar o grid já montado com o visual desejado, independente se tenha dados ou não, demoninado como “MontarGrid”.
Está função deve ser chamada no PageLoad.
protected void Monta_Grid()
{
DataTable tbDados; // CRIO UM DataTable para criação de uma nova tabela
DataColumn Coluna; // CRIO UM DataColum para armarzenar os nomes das colunas, o tipo da coluna
Session["contador"] = 0;
tbDados = new DataTable ();
//ADINCIONAR 1º LINHA
Coluna = new DataColumn();//Crio uma nova coluna
Coluna.DataType = System.Type.GetType("System.Int32"); //Tipo de dados da nova coluna
Coluna.ColumnName = "PROFISSIONAL";//Nome da coluna
tbDados.Columns.Add(Coluna);
//ADINCIONAR 2º LINHA
Coluna = new DataColumn();
Coluna.DataType = System.Type.GetType("System.Int32");
Coluna.ColumnName = "QTD";
tbDados.Columns.Add(Coluna);
//ADINCIONAR 3º LINHA
Coluna = new DataColumn();
Coluna.DataType = System.Type.GetType("System.String");
Coluna.ColumnName = "VALOR";
tbDados.Columns.Add(Coluna);
//ADINCIONAR 4º LINHA
Coluna = new DataColumn();
Coluna.DataType = System.Type.GetType("System.String");
Coluna.ColumnName = "VISUALIZAR";
tbDados.Columns.Add(Coluna);
//ADINCIONAR 5º LINHA
Coluna = new DataColumn();
Coluna.DataType = System.Type.GetType("System.String");
Coluna.ColumnName = "Valor Unt";
tbDados.Columns.Add(Coluna);
//ESTE PONTO CRIA A CHAVE PRIMÁRIA DO DATAGRID, pois a criação precisa ter uma chave primária para montagem do datagrid e somente para ressaltar que uma coluna que os dados não se repitam.
DataColumn[] DCol = new DataColumn[1];
DCol[0] = tbDados.Columns["PROFISSIONAL"];
tbDados.PrimaryKey = DCol;
Session["TabelaDados"] = tbDados; //JOGOS OS DADOS NO SESSION
DDL_Producao.DataSource = tbDados; //INSERE OS DADOS NO DATASOURCE
DDL_Producao.DataBind(); //JOGA OS DADOS NO DATALIST
}
2° FUNÇÃO BindGrid
Está montará todo o comando que trará os dados do banco e montará o grid como estes dados.
Uso um código de um sistema de atendimento a cliente que neste caso mostra a produção de todos os vendedores.
private void BindGrid()
{
DataSet ds = new DataSet();
string connectionString = ConfigurationManager.ConnectionStrings["ASPNETDBConnectionString"].ConnectionString;
using (SqlConnection cnn = new SqlConnection(connectionString))
{
DateTime data1 = Convert.ToDateTime(txtdata1.Text);
string dt1 = data1.Year + "-" + data1.Month + "-" + data1.Day;
DateTime data2 = Convert.ToDateTime(txtdata2.Text);
string dt2 = data2.Year + "-" + data2.Month + "-" + data2.Day;
strSQL = "SELECT NOME,A.CODFUNC,COUNT(A.CODFUNC)QTD,SUM(VALORUNT)VALOR " +
"FROM ATD_DETAILS A " +
" LEFT JOIN FUNCIONARIOS B " +
" ON A.CODFUNC=B.CODFUNC " +
" LEFT JOIN ATENDIMENTO C " +
" ON A.CODATD=C.CODATD " +
"WHERE A.CODFUNC IS NOT NULL " +
"AND NOME IS NOT NULL " ;
strSQL = strSQL + "AND DATA BETWEEN " + "'" + dt1 + "'" + " AND " + "'" + dt2 + "'" +
"GROUP BY A.CODFUNC,NOME " +
"ORDER BY NOME ";
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter(strSQL, cnn);
ds.Tables.Add("ATENDIMENTO");
da.Fill(ds.Tables["ATENDIMENTO"]);
DDL_Producao.DataSource = ds.Tables["ATENDIMENTO"];
DDL_Producao.DataBind();
}
}
At.
Flávio Renato
PS: Deixe seu comentário no artigo para que possamos melhorar nossos posts.

At.
Flávio Renato
PS: Deixe seu comentário no artigo para que possamos melhorar nossos posts.