executar uma função através de um gridwiew
30/05/2006
0
Existe como eu fazer o seguinte, tenho um gridwiew com um campo select ou button quando eu clicar neste botão da gridwiew ser executado uma função no código que recebe o id correspondete a linha do registro?
ex: cliquei em uma linha chamei uma função e recebi como paramentro o id daquela linha para ir ao banco de dados.
existe como?
ex: cliquei em uma linha chamei uma função e recebi como paramentro o id daquela linha para ir ao banco de dados.
existe como?
Felipe Moura
Curtir tópico
+ 0
Responder
Posts
31/05/2006
It3r
sim claro...
verifique os eventos, como eu não sei a linguagem q está utilizando... seria algo como ´selected´ do gridview...
onde vc poderá recuperar assim...
e.cells(0)....
lembrando de verificar se é cabeçalho ou não, qualquer coisa replay neste post...
verifique os eventos, como eu não sei a linguagem q está utilizando... seria algo como ´selected´ do gridview...
onde vc poderá recuperar assim...
e.cells(0)....
lembrando de verificar se é cabeçalho ou não, qualquer coisa replay neste post...
Responder
02/06/2006
Felipe Moura
Não entendi muito bem o que tu quis dizer mas uma amigo me deu as barbadas e eu vou repassar para vocês com minha palavras
existerm várias formas de executar metódos de servidor e métodos java script atravez de uma gridwiew
vamos lá:
na gridwiew existem diversos eventos um deles é o [b:5c17391bc7]OnRowCommand[/b:5c17391bc7] esse atributo da nome ao método que vai interseptar no postback da página o click em buttons ou linksbuttons (por exemplo), quando forem clicados.
GridView1_RowCommand = é o nome do método a ser chamdo quando as linhas forem clicadas
dentro da gridwiw temos o campo template com o linkbutton:
neste caso em espesífico temos duas colunas sem falar as que vem do banco atravez do [b:5c17391bc7]objectDataSource[/b:5c17391bc7]
Sendo assim então devemos escrever o método para pegar os valores
OBS: TODOS OS CAMPOS TEMPLATES VAÕ SER INTERSEPTATODOS PELOS MESMOS MÉTODOS
Percebam que o nome da função é o mesmo que o do atributo OnRowCommand.
O legal de observar é o parâmetro [b:5c17391bc7]GridViewCommandEventArgs e[/b:5c17391bc7] que permitirá a nós acessarmos os atributos dento do linkbutton
ex:
Como esse eventro intercepta todas as linhas e colunas clicadas na gridwiew então se faz necessário o teste para identificar o que deve ser feito
É por isso que colocarmos no linkbuttons dentro dos campos templates valores diferentes para os atributos
[b:5c17391bc7]CommandName
ID
CommandArgument[/b:5c17391bc7]
Vale lembrar que o [b:5c17391bc7]CommandArgument[/b:5c17391bc7] serve para colocarmos os valores que desejamos passar para as funções no meu caso (e no de muitas pessoas) é o id da tupla que eu desejo editar na tabela
dentro do método do servidor basta um [b:5c17391bc7]e.CommandArgument[/b:5c17391bc7] para acessar o valor (id)
Caso alguém tiver a necessidade de passar diversas dados no CommandArgument recomento suar serialização, separar por , | @ $ * & ou sei lá o que
espero que ajude alguém isso que eu escrevi
abraços
existerm várias formas de executar metódos de servidor e métodos java script atravez de uma gridwiew
vamos lá:
na gridwiew existem diversos eventos um deles é o [b:5c17391bc7]OnRowCommand[/b:5c17391bc7] esse atributo da nome ao método que vai interseptar no postback da página o click em buttons ou linksbuttons (por exemplo), quando forem clicados.
<asp:GridView
...
OnRowCommand = ´GridView1_RowCommand´
...
>
GridView1_RowCommand = é o nome do método a ser chamdo quando as linhas forem clicadas
dentro da gridwiw temos o campo template com o linkbutton:
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID=´editar´
CommandArgument=´<¬# Eval(´id_noticia´) ¬>´
CommandName=´editar´ runat=´server´ CausesValidation=´false´>
Editar Notícia
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID=´deletar´
CommandArgument=´<¬ Eval(´id_noticia´) ¬>´
CommandName=´deletar´ runat=´server´ CausesValidation=´false´>
Deletar Notícia
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
neste caso em espesífico temos duas colunas sem falar as que vem do banco atravez do [b:5c17391bc7]objectDataSource[/b:5c17391bc7]
</asp:GridView>
Sendo assim então devemos escrever o método para pegar os valores
OBS: TODOS OS CAMPOS TEMPLATES VAÕ SER INTERSEPTATODOS PELOS MESMOS MÉTODOS
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
//Response.Write(e.CommandArgument.ToString());
//Response.Write(e.CommandName.ToString());
if (e.CommandName.ToString() == ´editar´)
{
//manda para o método que edita
this.editar(e.CommandArgument.ToString());
//depois de editar reescreve a grid
GridView1.DataBind();
}
else
{
//manda para a classe para deletar
noticias.delete_noticias(e.CommandArgument.ToString());
//depois de deletar reescreve a grid
GridView1.DataBind();
}
}
Percebam que o nome da função é o mesmo que o do atributo OnRowCommand.
O legal de observar é o parâmetro [b:5c17391bc7]GridViewCommandEventArgs e[/b:5c17391bc7] que permitirá a nós acessarmos os atributos dento do linkbutton
ex:
//Response.Write(e.CommandArgument.ToString());
//Response.Write(e.CommandName.ToString());
Como esse eventro intercepta todas as linhas e colunas clicadas na gridwiew então se faz necessário o teste para identificar o que deve ser feito
if (e.CommandName.ToString() == ´editar´) {
//rodar a rotina de ediçaõ
} else if (e.CommandName.ToString() == ´deletar´) {
//rodar a rotina de deleção
}
É por isso que colocarmos no linkbuttons dentro dos campos templates valores diferentes para os atributos
[b:5c17391bc7]CommandName
ID
CommandArgument[/b:5c17391bc7]
Vale lembrar que o [b:5c17391bc7]CommandArgument[/b:5c17391bc7] serve para colocarmos os valores que desejamos passar para as funções no meu caso (e no de muitas pessoas) é o id da tupla que eu desejo editar na tabela
CommandArgument=´<¬# Eval(´id_noticia´) ¬>´
dentro do método do servidor basta um [b:5c17391bc7]e.CommandArgument[/b:5c17391bc7] para acessar o valor (id)
Caso alguém tiver a necessidade de passar diversas dados no CommandArgument recomento suar serialização, separar por , | @ $ * & ou sei lá o que
espero que ajude alguém isso que eu escrevi
abraços
Responder
Clique aqui para fazer login e interagir na Comunidade :)