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?


Felipe Moura

Felipe Moura

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...


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.
<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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar