quarta-feira, 26 de maio de 2010

Acessar metodos em c# com javascript (Asp.Net FW 3.5)

- Insira um ScriptManager que está na aba Ajax e altere sua propriedade EnablePageMethods="true".

- Crie uma função javascript para acessar o método do code behind c# como o exemplo abaixo (após efetuar os teste e suas funcionalidades pode encrementar de acordo com suas necessidades) separei em duas funções para ilustrar mas poderia utilizar apenas uma(fica para a próxima):

3º - Adicione em sua página Default.aspx um label server control e altere sua propriedade ID para lblAlertaDiv.
Adicione também um Input tipo Button da aba HTML da toolbox e altere sua propriedade onclick para onclick="Mensagem();"

4º - Criar um metodo em c# acessível via javascript, neste exemplo utilizei uma variavel de sessão para atribuir valor a outra variavel estatica que fica melhor descrito no código abaixo:

//Acrescente os assemblies:
using System.Web.Services;
using System.Web.Script.Services;

//Variavel estática para ser utilizada em métodos estáticos
private static string secao;

//No load atribui-se valor a variavel
protected void Page_Load(object sender, EventArgs e)

{

Session["Teste"] = "Teste";

secao = Session["Teste"].ToString();

}

//Metodo estático com sobrecarga da classe [WebMethod] e [ScriptMethod]
[WebMethod]

[ScriptMethod]

public static string Message()

{

return secao;


}

sexta-feira, 7 de maio de 2010

Pegar as informações de uma determinada celula no dataGridView C# Windows Forms

//Onde [1,1] representam respectivamente coluna 1 e linha 1.

dataGridView1[1, 1].ToString();

Percorrendo uma tabela e utilizando um Array para deletar linhas

Esta necessidade ocorreu devido a ter precisado excluir duas ou mais linhas de uma tabela apresentadas em um dataGridView onde as linhas que serão excluidas tinham registros dependentes uns dos outros.

//Identificação das linhas a serem deletadas
linha_index = dataGridView1.CurrentRow.Cells[2].Value.ToString();

//Declarei um array para receber o index da linha
int[] linhas = new int[100];

//Este laço irá percorrer um DataTable para verificar e identificar as linhas a serem excluidas e armazenar no array seus indices.
for (int i = 0; i < DT.Rows.Count; i++)
{
if (DT.Rows[i][2].ToString() == linha_index)
{
linhas[i] = 1;
}
}

//Este segundo laço deleta as linhas dependentes só que de trás para frente, evitando o erro de se excluir a primeira linha, alterando o indice das demais a serem excluidas, dando diferença do array e consequentemente um erro.

int contador = 100;
for (int i = 0; i < linhas.Length; i++)
{
contador--;
int numero = linhas[contador];

if (numero > 0)
{
DT.Rows[contador].Delete();
}
}