Usuário com melhor resposta
modalpopupextender LinkButton no gridview ?

Pergunta
-
Boa tarde pessoal!
como faco pra chamar um modalPopUpExtender no click de um linkbutton ?
Quando coloco no Linkbutton fora do grid funciona normal, configuro o Targetcontrolid=linkbutton e blz mas quando coloco o linkbutton em um template no grid nao funciona.
Obs.: o grid só é chamado no click no botao entao acredito q deve ser isso pq quando inicializo a pagina onde esta o grid a propriedade do modal TargetControlID nao encontrar o linkbutton. se o linkbutton estiver fora do grid funciona mas no template nao.
Alguma Sugestao !
<asp:ModalPopupExtender ID="ModalPanel1" runat="server" BackgroundCssClass="modalBackground" PopupControlID="Panel1" TargetControlID="LinkButton1">
</asp:ModalPopupExtender>
Respostas
-
Rafael, Olhando o seu código,
Há duvida que ficou é? Você ligou este método ao Grid?
O CommandName é como se fosse uma identificação de quem esta Chamando o método.
Você esta preenchendo o CommandArgument?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br- Editado Bruno VD Ribeiro sexta-feira, 12 de outubro de 2012 15:38
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
O seu quando o evento RowCommand do seu grid é disparado, ele esta chamando outro método, que é o GridView_reuniao_RowCommand
por isso que não passa pelo método que você postou.
O CommandArgument normalmente é preenchido no evento RowdataBound
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:42
-
Rafael, Boa tarde
Uma coisa que você pode tentar fazer é setar a propriedade ClientIdMode = true do seu linkbutton
<asp:LinkButton ID="LinkButton1" runat="server" ClientIDMode="Static">LinkButton</asp:LinkButton>
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brValeu Bruno,
Funcionou mas agora esta com o outro problema o modal so esta funcionando so quando clico no linkbutton da primeira linha do gridview
O linkbutton esta dentro de um template e estou dando um Binding em um coluna do banco ou seja cada linha do grid onde tem esse linkbutton tem um descricao diferente(nao sei se isso interfere)
Vlw pela atencao
-
Rafael, Boa tarde
Uma coisa que você pode tentar fazer é setar a propriedade ClientIdMode = true do seu linkbutton
<asp:LinkButton ID="LinkButton1" runat="server" ClientIDMode="Static">LinkButton</asp:LinkButton>
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brValeu Bruno,
Funcionou mas agora esta com o outro problema o modal so esta funcionando so quando clico no linkbutton da primeira linha do gridview
O linkbutton esta dentro de um template e estou dando um Binding em um coluna do banco ou seja cada linha do grid onde tem esse linkbutton tem um descricao diferente(nao sei se isso interfere)
<asp:LinkButton ID="Link_Ponto" runat="server" ClientIDMode= "Static"
Text='<%# Eval("CLI_DESCRICAO") %>'></asp:LinkButton>
<asp:ModalPopupExtender ID="ModalPanel1" runat="server" BackgroundCssClass="modalBackground"
PopupControlID="boxMessagem" TargetControlID="Link_Ponto">
</asp:ModalPopupExtender>Vlw pela atencao
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
Rafael, Olhando o seu código,
Há duvida que ficou é? Você ligou este método ao Grid?
O CommandName é como se fosse uma identificação de quem esta Chamando o método.
Você esta preenchendo o CommandArgument?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brBom dia !
Como assim ? Você ligou este método ao Grid?
E quando vc diz que : CommandName é como se fosse uma identificação de quem esta Chamando o método .
Isso quer dizer que o CommandName tem que ser = a o nome da coluna onde esta o LinkButton
CommandName= 'Ponto' .......isso ??
Valew mais uma vez!
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
é assim
Veja se no seu grid viu existe a referência para o método do RowCommand
<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"></asp:GridView>
Não precisa ser o nome da Coluna, tem que ser uma identificação para o que quando o RowCommand for executado, você saber quem foi, pode chamar do que quiser
Agora e o CommandArgument, você esta preenchendo?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
é assim
Veja se no seu grid viu existe a referência para o método do RowCommand
<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"></asp:GridView>
Não precisa ser o nome da Coluna, tem que ser uma identificação para o que quando o RowCommand for executado, você saber quem foi, pode chamar do que quiser
Agora e o CommandArgument, você esta preenchendo?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brBruno o Grid ta assim.
<asp:GridView ID="GridView_reuniao" runat="server" Width="100%" AutoGenerateColumns="False"
DataKeyNames="MAN_ID" OnSelectedIndexChanged="GridView_reuniao_SelectedIndexChanged"
OnRowDataBound="GridView_reuniao_RowDataBound" CssClass="style373"
Font-Underline="False" onrowcommand="GridView_reuniao_RowCommand">Onde vejo se estou preechendo eesse CommandArgument.
Quando debug o codigo no click no linkbutton chama o o modal mas nao passa dentro do evento RowComand
Valew!
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
O seu quando o evento RowCommand do seu grid é disparado, ele esta chamando outro método, que é o GridView_reuniao_RowCommand
por isso que não passa pelo método que você postou.
O CommandArgument normalmente é preenchido no evento RowdataBound
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brDesculpe Bruno na primeira postagem eu tinha modificado o nome mas o nome do metodo é esse mesmo
protected void GridView_reuniao_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Ponto" && e.CommandArgument != null)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
Session["ID"] = rowIndex;
ModalPanel.Show();
}
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
O seu quando o evento RowCommand do seu grid é disparado, ele esta chamando outro método, que é o GridView_reuniao_RowCommand
por isso que não passa pelo método que você postou.
O CommandArgument normalmente é preenchido no evento RowdataBound
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brConseguir resolver por parte o problema, revisando o Link que vc me passou conseguir fazer com que no click do LinkButton entra no Evento rowcomand mas tem um porem com esse codigo abaixo preciso armazenar na Session o Valor do ID do banco e do jeito que ta quando debug o codigo percebo que ele pega a linha e nao o ID como faco pra o ID ir para a Session?
outra coisa esse metodo GridPontoAtencao(); é meu metodo de preencher o grid que precisa como paramentro a Session que citei acima ..coloquei o Metodo no lugar certo ?
Obrigado !
protected void GridView_reuniao_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Ponto" && e.CommandArgument != null)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
Session["ID"] = rowIndex;
GridPontoAtencao();
ModalPanel1.Show();
}
} -
O seu quando o evento RowCommand do seu grid é disparado, ele esta chamando outro método, que é o GridView_reuniao_RowCommand
por isso que não passa pelo método que você postou.
O CommandArgument normalmente é preenchido no evento RowdataBound
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brConseguir resolver por parte o problema, revisando o Link que vc me passou conseguir fazer com que no click do LinkButton entra no Evento rowcomand mas tem um porem com esse codigo abaixo preciso armazenar na Session o Valor do ID do banco e do jeito que ta quando debug o codigo percebo que ele pega a linha e nao o ID como faco pra o ID ir para a Session?
outra coisa esse metodo GridPontoAtencao(); é meu metodo de preencher o grid que precisa como paramentro a Session que citei acima ..coloquei o Metodo no lugar certo ?
Obrigado !
protected void GridView_reuniao_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Ponto" && e.CommandArgument != null)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
Session["ID"] = rowIndex;
GridPontoAtencao();
ModalPanel1.Show();
}
}
Bruno Obrigado pela Atencao.
Com sua ajuda e com os post aqui conseguir resolver
nesse codigo acima tava faltando a seguinte linha
string chave = GridView_reuniao.DataKeys[rowIndex]["ID"].ToString();
Valeu mesmo pela atencao!
Obrigado !
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
Todas as Respostas
-
Rafael, Boa tarde
Uma coisa que você pode tentar fazer é setar a propriedade ClientIdMode = true do seu linkbutton
<asp:LinkButton ID="LinkButton1" runat="server" ClientIDMode="Static">LinkButton</asp:LinkButton>
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br -
Rafael, Boa tarde
Uma coisa que você pode tentar fazer é setar a propriedade ClientIdMode = true do seu linkbutton
<asp:LinkButton ID="LinkButton1" runat="server" ClientIDMode="Static">LinkButton</asp:LinkButton>
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brValeu Bruno,
Funcionou mas agora esta com o outro problema o modal so esta funcionando so quando clico no linkbutton da primeira linha do gridview
O linkbutton esta dentro de um template e estou dando um Binding em um coluna do banco ou seja cada linha do grid onde tem esse linkbutton tem um descricao diferente(nao sei se isso interfere)
Vlw pela atencao
-
Rafael, Boa tarde
Uma coisa que você pode tentar fazer é setar a propriedade ClientIdMode = true do seu linkbutton
<asp:LinkButton ID="LinkButton1" runat="server" ClientIDMode="Static">LinkButton</asp:LinkButton>
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brValeu Bruno,
Funcionou mas agora esta com o outro problema o modal so esta funcionando so quando clico no linkbutton da primeira linha do gridview
O linkbutton esta dentro de um template e estou dando um Binding em um coluna do banco ou seja cada linha do grid onde tem esse linkbutton tem um descricao diferente(nao sei se isso interfere)
<asp:LinkButton ID="Link_Ponto" runat="server" ClientIDMode= "Static"
Text='<%# Eval("CLI_DESCRICAO") %>'></asp:LinkButton>
<asp:ModalPopupExtender ID="ModalPanel1" runat="server" BackgroundCssClass="modalBackground"
PopupControlID="boxMessagem" TargetControlID="Link_Ponto">
</asp:ModalPopupExtender>Vlw pela atencao
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
Rafael,
Na verdade o problema esta no ID do controle que você esta utilizando,
De uma olhada nos links abaixo, acredito que possam te ajudar
http://stackoverflow.com/questions/3261213/modalpopupextender-inside-a-gridview-itemtemplate
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br -
Valeu Bruno mais uma vez
Seguir os passo no link que vc passou
http://stackoverflow.com/questions/3261213/modalpopupextender-inside-a-gridview-itemtemplate
e funcionou agora todas aslinhas chama o LinkButton como eu esperava mas o evento
RowComand nao esta sendo disparado
desculpe por tantas perguns e agradeco a paciencia
-
Rafael,
Não há problemas em você fazer perguntas.
Você alterou o seu html? o novo faz referência para é RowComand?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br -
Rafael,
Não há problemas em você fazer perguntas.
Você alterou o seu html? o novo faz referência para é RowComand?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brOla Bruno!
O Html ficou assim
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" ViewStateMode="Enabled"
CommandName="Ponto">Ponto</asp:LinkButton><asp:ModalPopupExtender runat="server" ID="ModalPanel" TargetControlID="LinkButton1" PopupControlID="boxMessagem2" BackgroundCssClass="modalBackground">
</asp:ModalPopupExtender>
</ItemTemplate>e o rowcomand ficou assim
protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Ponto" && e.CommandArgument != null)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
Session["ID"] = rowIndex;
ModalPanel.Show();
}}
O que server esse CommandName ??
*Ponto é o nome da coluna onde esta o LinkButton no grid .
Obrigado pela paciencia!
-
Rafael, Olhando o seu código,
Há duvida que ficou é? Você ligou este método ao Grid?
O CommandName é como se fosse uma identificação de quem esta Chamando o método.
Você esta preenchendo o CommandArgument?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br- Editado Bruno VD Ribeiro sexta-feira, 12 de outubro de 2012 15:38
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
Rafael, Olhando o seu código,
Há duvida que ficou é? Você ligou este método ao Grid?
O CommandName é como se fosse uma identificação de quem esta Chamando o método.
Você esta preenchendo o CommandArgument?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brBom dia !
Como assim ? Você ligou este método ao Grid?
E quando vc diz que : CommandName é como se fosse uma identificação de quem esta Chamando o método .
Isso quer dizer que o CommandName tem que ser = a o nome da coluna onde esta o LinkButton
CommandName= 'Ponto' .......isso ??
Valew mais uma vez!
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
é assim
Veja se no seu grid viu existe a referência para o método do RowCommand
<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"></asp:GridView>
Não precisa ser o nome da Coluna, tem que ser uma identificação para o que quando o RowCommand for executado, você saber quem foi, pode chamar do que quiser
Agora e o CommandArgument, você esta preenchendo?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
é assim
Veja se no seu grid viu existe a referência para o método do RowCommand
<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"></asp:GridView>
Não precisa ser o nome da Coluna, tem que ser uma identificação para o que quando o RowCommand for executado, você saber quem foi, pode chamar do que quiser
Agora e o CommandArgument, você esta preenchendo?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brBruno o Grid ta assim.
<asp:GridView ID="GridView_reuniao" runat="server" Width="100%" AutoGenerateColumns="False"
DataKeyNames="MAN_ID" OnSelectedIndexChanged="GridView_reuniao_SelectedIndexChanged"
OnRowDataBound="GridView_reuniao_RowDataBound" CssClass="style373"
Font-Underline="False" onrowcommand="GridView_reuniao_RowCommand">Onde vejo se estou preechendo eesse CommandArgument.
Quando debug o codigo no click no linkbutton chama o o modal mas nao passa dentro do evento RowComand
Valew!
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
O seu quando o evento RowCommand do seu grid é disparado, ele esta chamando outro método, que é o GridView_reuniao_RowCommand
por isso que não passa pelo método que você postou.
O CommandArgument normalmente é preenchido no evento RowdataBound
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:42
-
O seu quando o evento RowCommand do seu grid é disparado, ele esta chamando outro método, que é o GridView_reuniao_RowCommand
por isso que não passa pelo método que você postou.
O CommandArgument normalmente é preenchido no evento RowdataBound
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brDesculpe Bruno na primeira postagem eu tinha modificado o nome mas o nome do metodo é esse mesmo
protected void GridView_reuniao_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Ponto" && e.CommandArgument != null)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
Session["ID"] = rowIndex;
ModalPanel.Show();
}
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43
-
O seu quando o evento RowCommand do seu grid é disparado, ele esta chamando outro método, que é o GridView_reuniao_RowCommand
por isso que não passa pelo método que você postou.
O CommandArgument normalmente é preenchido no evento RowdataBound
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brConseguir resolver por parte o problema, revisando o Link que vc me passou conseguir fazer com que no click do LinkButton entra no Evento rowcomand mas tem um porem com esse codigo abaixo preciso armazenar na Session o Valor do ID do banco e do jeito que ta quando debug o codigo percebo que ele pega a linha e nao o ID como faco pra o ID ir para a Session?
outra coisa esse metodo GridPontoAtencao(); é meu metodo de preencher o grid que precisa como paramentro a Session que citei acima ..coloquei o Metodo no lugar certo ?
Obrigado !
protected void GridView_reuniao_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Ponto" && e.CommandArgument != null)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
Session["ID"] = rowIndex;
GridPontoAtencao();
ModalPanel1.Show();
}
} -
O seu quando o evento RowCommand do seu grid é disparado, ele esta chamando outro método, que é o GridView_reuniao_RowCommand
por isso que não passa pelo método que você postou.
O CommandArgument normalmente é preenchido no evento RowdataBound
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.brConseguir resolver por parte o problema, revisando o Link que vc me passou conseguir fazer com que no click do LinkButton entra no Evento rowcomand mas tem um porem com esse codigo abaixo preciso armazenar na Session o Valor do ID do banco e do jeito que ta quando debug o codigo percebo que ele pega a linha e nao o ID como faco pra o ID ir para a Session?
outra coisa esse metodo GridPontoAtencao(); é meu metodo de preencher o grid que precisa como paramentro a Session que citei acima ..coloquei o Metodo no lugar certo ?
Obrigado !
protected void GridView_reuniao_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Ponto" && e.CommandArgument != null)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
Session["ID"] = rowIndex;
GridPontoAtencao();
ModalPanel1.Show();
}
}
Bruno Obrigado pela Atencao.
Com sua ajuda e com os post aqui conseguir resolver
nesse codigo acima tava faltando a seguinte linha
string chave = GridView_reuniao.DataKeys[rowIndex]["ID"].ToString();
Valeu mesmo pela atencao!
Obrigado !
- Marcado como Resposta RJ_Silva sexta-feira, 12 de outubro de 2012 19:43