1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

postback hiperlink asp.net

Discussão em 'Web Development' iniciada por alfinete, 26 de Janeiro de 2009. (Respostas: 9; Visualizações: 1662)

  1. alfinete

    alfinete Power Member

    estou com um prob, tenho de utilizar um hiperlink column de uma grid em asp.net com c# , ate ai tdo bem.

    e depois tenho este code quer no page init quer no page load

    Código:
    
      if (!IsPostBack)
                {
                    Session.Add("delete", 0);
                    Session.Add("Alter", 0);
                }
    
    
    ao clicar nesse hiper link ele entra sempre no if , e eu so quero que ele entre nesse if ao arraque da pagina e não quando clico no hiper link da grid ..

    como posso resolver este prob, é que na grid a unica opção que tenho é a do hiperlinkcolumn, pois é um controlo de grid view aqui da empresa onde trabalho....

    agradecia um help

    chamada do hiperlimk

    Código:
     WucDynamicGridView1.AddHyperlinkColumn("", "Selecionar", "<img src='../images/dns_icon.gif' width='25' height='25' border='0'>", string.Empty, m_DataNavigateUrl, "~/EnbAdministration/ENBAdministrationDistricts.aspx?id={0}", HorizontalAlign.Center, 5);
    
     
  2. SkylineGTR

    SkylineGTR Power Member

    Quando clicas no hyperlink estás a redirecionar para a mesma página?
     
  3. alfinete

    alfinete Power Member

  4. SkylineGTR

    SkylineGTR Power Member

    Então aí tens a resposta ao teu problema. Ao clicares no hyperlink estás a fazer um novo request à página e não um postback, daí o metodo "IsPostback" devolver "false".

    Podes resolver isso de várias formas. Não sei para que usas um hyperlink para redirecionar para a mesma página quando podias, por exemplo, usar o evento RowCommand da GridView para fazer qualquer processamemto.
    Mas, se quiseres manter como estás a fazer, vais ter de bloquear a execução do código do Load da página de outra forma. Através de outra variável de sessão ou através dos parâmetros que passas no URL.
     
  5. alfinete

    alfinete Power Member

    querendo manter o que estou a fazer , agradecia que arranjases um exemplo de cada uma das hipoteses que citaste, obrigada
     
  6. theforbidden1

    theforbidden1 Banido

    já experimentas-te adicionar um botão à coluna para fazer isso que tu pretendes?

    Código:
    <asp:GridView ID="GridViewUser" runat="server" 
                onselectedindexchanged="GridViewUser_SelectedIndexChanged"
                AutoGenerateColumns="False" DataKeyNames="ponto">
                <Columns>[B]
                   [COLOR=Magenta] <asp:ButtonField CommandName="Select" Text="Avançadas" />[/COLOR]
    [/B]                <asp:boundfield datafield="nome" headertext="Nome" />
                    <asp:boundfield datafield="Descrição" headertext="Descrição" />
                    <asp:boundfield datafield="ponto" headertext="ponto" visible="false" />
                    
                </Columns>
            </asp:GridView>
     
    Última edição: 26 de Janeiro de 2009
  7. SoundSurfer

    SoundSurfer Power Member

    Exacto, usa o ButtonField.
     
  8. alfinete

    alfinete Power Member

    thanks por tdo o help?

    msa resolvi com uma var de sessão

    do tipo

    Código:
    if session["state"]!=null
    {
        if session["state"].Tostring()="1"
         {
           lsblerro="gravado com sucesso";
           session["state"]==null;
        }
    }
    quando fasso o update ou delete tiro a query string efasso u response.redirect a mesma pagina guardando um valor na session o qual o mudo ao mostrar a mensagem ..


    thanks
    e ja deu
     
  9. theforbidden1

    theforbidden1 Banido

    e será que vai funcionar quando quiseres (mesmo) voltar a essa pagina? é que entretanto a variável de sessão já foi mudada umas quantas vezes.
     
  10. alfinete

    alfinete Power Member

    esta a funcionar que é uma coisa louca
     

Partilhar esta Página