// -- Default.ASPX
// * Criar 4 controles:
<asp:Label ID="lblTitulo" runat="server" Text="Informe o número de campos: "> </asp:Label>
<asp:TextBox ID="txtCampos" runat="server" MaxLength="2" Width="40"> </asp:TextBox>
<asp:RequiredFieldValidator ID="rfvCampos" runat="server" Text="(Obrigatório)" ControlToValidate="txtCampos"> </asp:RequiredFieldValidator>
<asp:Button ID="btOk" runat="server" Text="Ok" onclick="btOk_Click" />
// -- Default.ASPX.CS - Duplo click sobre o botao e incluir o código.
protected void btOk_Click(object sender, EventArgs e)
{
Response.Redirect("MostraCampos.aspx?num=" + this.txtCampos.Text.ToString());
}
// -- MostraCampos.ASPX
// * Criar 3 controles ASPX ( 1-Tabela e 2 Botoes)
// Objeto table encontra-se na barra de ferramentas(standard)
<asp:Table
ID="Table1"
runat="server"
GridLines="Vertical"
Font-Size="Medium"
ForeColor="#006699"
CellPadding="2"
CellSpacing="2">
</asp:Table>
<asp:Button
ID="btProcessa"
runat="server"
Text="Ordena"
onclick="btProcessa_Click"
ToolTip="Exibe os números em ordem crescente" />
<asp:Button
ID="btVoltar"
runat="server"
onclick="btVoltar_Click"
Text="Voltar"
ToolTip="Volta a pagina inicial" />
// -- MostraCampos.ASPX.CS - Duplo click sobre o botao e incluir o código.
protected void Page_Load(object sender, EventArgs e)
{
/****************************************************************
*
* Procedimentos para CRIAR os campos dinamicos
*
****************************************************************/
// Criando Variaveis
// Representa uma linha da tabela
TableRow Linha;
// Representa uma celula da tabela
TableCell Celula;
// Representa um campo TextBox
TextBox Campo;
// Variavel para gerenciar contador
int nCont = 0;
// Variavel que presenta a quantidade de campos a ser criado
int nCampos = 0;
// Variavel que presenta numeros aleatório
Random RandomClass = new Random();
// Verificando se na URL existe o parametro "num"
if(Request["num"] != null)
{
// Recebo o valor existe no parametro e o converto de STRING para INT
// porque a variavel nCampos é do tipo INTEIRO
nCampos = Convert.ToInt32(Request["num"].ToString());
// Iniciando contador que vai criar os campos
for (nCont = 0; nCont <= nCampos; nCont++)
{
// Criando nova linha, calula e campo
Linha = new TableRow();
Celula = new TableCell();
Campo = new TextBox();
// Setando propriedades do campo
// O nome do campo a ser criado é : sField_1, sField_2, sField_N...
Campo.ID = "sField_" + nCont.ToString();
Campo.Width = Unit.Pixel(40);
// Alimentando o campo com valores inteiros de 0 a 999
Campo.Text = RandomClass.Next(0, 999).ToString();
// Adiciono o campo criado e setado a celula
Celula.Controls.Add(Campo);
// Adiciono a celula com o campo a linha
Linha.Cells.Add(Celula);
// Adiciono a linha com a celula e com o campo setado a tabela
this.Table1.Rows.Add(Linha);
}
}
}
protected void btProcessa_Click(object sender, EventArgs e)
{
/****************************************************************
*
* Procedimentos para CRIAR os campos dinamicos
*
****************************************************************/
// Variavel para gerenciar contador
int nCont = 0;
// Variavel que presenta a quantidade de campos a ser criado
int nCampos = 0;
// Verificando se na URL existe o parametro "num"
if (Request["num"] != null)
{
// Recebo o valor existe no parametro e o converto de STRING para INT
// porque a variavel nCampos é do tipo INTEIRO
// Aqui adiciono mais um ao valor recebido pois este será o indice de um vetor
// e vetores tem sua PRIMEIRA posição com o valor ZERO
nCampos = Convert.ToInt32(Request["num"].ToString()) + 1;
// Criando vetor que irá armazenar o conteudo dos campos para ordena-los de forma crescente
int[] Vetor = new int[nCampos];
// Iniciando contador que vai criar os campos
for (nCont = 0; nCont <= nCampos; nCont++)
{
// Crio uma variavel do tipo TEXTBOX e procuro na tabela TABLE1 o campo: sField_1, sField_2, sField_N
// e ao encontrar o campo retorno também um TEXTBOX
TextBox text = this.Table1.FindControl("sField_" + nCont.ToString()) as TextBox;
// Verifico se o conteudo do campo é null caso contrario alimento uma posição do vetor
// com uma informação do tipo INTEIRO
if (text != null)
{
Vetor[nCont] = Convert.ToInt32(text.Text);
}
}
// Uma vez TODOS os campos lidos e seus valores armazenados no vetor, utilizo o metodo ARRAY.SORT
// para ler, ordenar e devolver um vetor classificado. Aqui temos um exemplo de parametro passado
// por referencia.
Array.Sort(Vetor);
nCampos = Convert.ToInt32(Request["num"].ToString());
for (nCont = 0; nCont <= nCampos-1; nCont++)
{
Response.Write(Vetor[nCont]);
Response.Write("<br>");
}
}
}
protected void btVoltar_Click(object sender, EventArgs e)
{
// Redireciono a execução para o inicio do aplicativo
Response.Redirect("Default.aspx");
}