Abrir POPUP Gridview

13/04/2010

Bom dia Pessoal, por favor, se alguem puder me ajudar....   O Problema é que eu preciso abrir uma popup do gridview aqui no meu trabalho ... estava lendo um artigo que encontrei aki mas não consegui implementar ... Estou programando em VB.Net .... e minha função pra carregar o griview é a abaixo...   Private Sub carregaGrid(ByVal Status As String, Optional ByVal paginacao As Integer = 0, Optional ByVal ordenar As SortDirection = SortDirection.Ascending)         '------------------------------------------ Acessar classe de negocios ------------------------------------         Dim negocios As New Negocio.forcaVendas.forcaVendas         '----------------------------------------------------------------------------------------------------------         Dim dtConsulta As New DataTable         Dim procurar As String         procurar = Session.Item("Procurar")           If procurar <> "" Then             dtConsulta = negocios.carregaGrid(Status, procurar)             'Session.Add("procurado", 1)         Else             dtConsulta = negocios.carregaGrid(Status)         End If           If dtConsulta.Rows.Count < 10 Then             Dim linhas As Integer = dtConsulta.Rows.Count             Dim DTrow As DataRow             Dim count As Integer = 10               While linhas < count                 DTrow = dtConsulta.NewRow                 dtConsulta.Rows.Add(DTrow)                 linhas = linhas + 1             End While         End If           GridView1.DataSource = dtConsulta         GridView1.PageIndex = paginacao         GridView1.DataBind()     End Sub   Ai já tentei várias coisas, no evento rowdatabound estou fazendo o seguinte:   Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound   e.Row.Cells(0).Attributes.Add("onclick", String.Format("javascript:window.open('CadastroCliente.aspx');"))           'Response.Write("<script language=javascript>window.open('CadastroCliente.aspx','test','height=200px;width=300px');</script>")         'Page.ClientScript.RegisterStartupScript(Me.GetType, " ", "windows.open(CadastroCliente.aspx,'windows','height=200px;width=300px');", True)             ' Dim teste As String         ' teste = e.Row.Cells(3).Text           'e.Row.Cells(0).Attributes.Add("onclick", String.Format("javascript:window.open('CadastroCliente.aspx');"))           'e.Row.Cells(0).Attributes.Add("onclick", String.Format("javascript:window.open('CadastroCliente.aspx?'+'&IdCliente='+ linha);"))           'e.Row.Cells(1).Attributes.Add("onclick", String.Format("<script type=text/javascript> window.open(CadastroCliente.aspx);</script>"))         End Sub   Os comentádos foi tudo que eu testei, só que acontece que eu quero passar por parâmetro o id do cliente, conforme eu fazia no envento select quando não abria em pop up, segue abaixo :   Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView1.SelectedIndexChanged           'Acessar classe de negocios ------------------------------------         Dim negocios As New Negocio.forcaVendas.forcaVendas         '---------------------------------------------------------------         Dim itemSel As Integer         itemSel = GridView1.SelectedIndex           Session.Add("Nome", GridView1.Rows(itemSel).Cells.Item(3).Text)         Session.Add("Sobrenome", GridView1.Rows(itemSel).Cells.Item(4).Text)         Session.Add("Status", DirectCast(Master.FindControl("lblTituloPesq"), Label).Text)           Dim Dtid As New DataTable         Dim id As Integer         Dtid = negocios.carregaIdCliente(Session.Item("Nome") + " " + Session.Item("Sobrenome"))         id = Dtid.Rows(0).Item(0)           Response.Redirect("CadastroCliente.aspx?" & "&IdCliente=" & id)       End Sub     Agora oque eu quero é quando o  cara clicar na coluna Select, do gridview, eu enviar para a página de cadastro, passando por parâmetro esse ID .... eu já consegui enviar para a página de cadastro sem passar parâmetro, mas isso não adianta para mim .... se você puderem me ajudar, ficaria muito grato...   Atenciosamente Lucas Alves

Lucas Alves

Respostas

13/04/2010

Pedro Otávio

  Adicione um TemplateField no seu GridView e nele crie um link '< a >Select< /a >', e para redirecionar  com parâmetro adicione isso
   
    href=''

ou acesse

http://www.devmedia.com.br/articles/post-5026-Customizando-o-Gridview.html
Responder Citar

13/04/2010

Pedro Otávio

no Href 

      Eval( " SeuParametro " , " CadastroCliente.aspx?Codigo= ")
Responder Citar

16/04/2010

Lucas Alves

Pedro, eu tentei implementar o código que você me passou mas nao funcionou, veja se eu fiz certo pf: No RowDataBound:

Dimlink As System.Web.UI.HtmlControls.HtmlAnchor
link = e.Row.FindControl("lnk")
link.Attributes.Add("onclick", String.Format("javascript:abrePopup('" + DataBinder.Eval(e.Row.DataItem, "NOME_CLIENTE").ToString() + "');"))
e no HTML

<script language="javascript">
function abrePopup(id) {
window.open('CadastroCliente.aspx?idCliente=' + id, 'Detalhe', 'width=600,height=400');
}

</script>

<asp:TemplateField>
<ItemTemplate>
<a href="#" ID="lnk" value='<%# Eval("NOME_CLIENTE")%>' runat="server"></a> 
</ItemTemplate>
Responder Citar

16/04/2010

Netasper

Faz o seguinte:   private void ExibirDetalhe(int codItem) { string PopUp = "<script language=\"javascript\">" + "abrePopupCentro(\"" + ConfigurationManager.AppSettings["Url"] + "Detalhe.aspx?cod=" + codItem.ToString() + "\", \"PopUp\", 600, 450, true, false, false, false);" + "</script>"; ClientScript.RegisterStartupScript(this.GetType(), "PopUp", PopUp); }   <asp:TemplateField HeaderStyle-Width="10px" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" HeaderText="Mais"> <ItemTemplate> <asp:ImageButton ID="ibExibir" OnCommand="ExibirDetalhe" runat="server" ImageUrl="~/Img/Botoes/btn_detalhes.gif" /> </ItemTemplate> <HeaderStyle HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Center" /> </asp:TemplateField>
Responder Citar