none
HyperLinkField multiview RRS feed

  • Pergunta

  • Galera, alguem ja fez um gridview com

    HyperLinkField aonde o mesmo estivesse numa pagina que herdasse de uma masterpage, alem de tudo esta pagina contem multiview, na primeira view eu tenho um pequeno cadastro e na segunda o grid. quando eu clicar no HyperLinkField eu gostaria que fosse redirecionado para mesma pagina preenchendo os campos com os dados do grid.

    eu estou usando um grid com dataset e objectdatasource.

    [ ] 's

    quinta-feira, 17 de maio de 2007 21:28

Todas as Respostas

  • Lissandra, ao invés de uma coluna Hyperlink, use uma coluna do tipo ButtonColumn (ButtonColumnType == ButtonColumnType.LinkButton), dê um valor qualquer à propriedade CommandName da coluna e monitore o evento RowCommand do gridview. Nesse evento, preencha os dados que você precisa.
    sexta-feira, 18 de maio de 2007 00:53
  • Olá Igor e existe ButtonColumn no gridview? aonde eu acho isso? funciona como template?

    [ ] 's

    sexta-feira, 18 de maio de 2007 11:29
  • Tentei fazer assim:

    <asp:TemplateField ItemStyle-HorizontalAlign="Left" ItemStyle-Width ="30%" HeaderStyle-HorizontalAlign="Left"

    SortExpression="vrlaliquota" ShowHeader="true" HeaderText="Aliquota">

    <ItemTemplate>

    <asp:LinkButton id="lbvalor" runat="server" Text='<%# eval("vrlaliquota") %>'></asp:LinkButton>

    </ItemTemplate>

    </asp:TemplateField>

    mas deu erro, usando este buttonColumn, eu teria que modificar todo o meu gridview!

    olha como ele esta:

    <asp:GridView ID="DgAliquota" runat="server" Allowpaging="True"

    AllowSorting="True" AutoGenerateColumns="False" cellpadding="4" ForeColor="#333333"

    GridLines="None" Width="100%" DataSourceID="ObjectdataSource1" DataKeyNames="idAliquota" >

    <RowStyle BackColor="White" ForeColor="#4A3C8C" />

    <EditrowStyle BackColor="#2461BF" />

    <pagerStyle ForeColor="White" HorizontalAlign="Center" BackColor="#DDE2E5" />

    <HeaderStyle CssClass="bg_01" Font-Bold="True" ForeColor="White" />

    <AlternatingRowStyle BackColor="#F0F5F4" />

    <Columns>

    <asp:TemplateField>

    <ItemTemplate>

    <asp:CheckBox ID="DeleteThis" onclick="BLOCKED SCRIPT return select_deselectAll (this.checked, this.id);" runat="server" />

    </ItemTemplate>

    <HeaderTemplate>

    <input id="CheckAll" onclick="BLOCKED SCRIPT return select_deselectAll (this.checked, this.id);" runat="server" type="checkbox" />

    </HeaderTemplate>

    <ItemStyle Width="2%" />

    </asp:TemplateField>

    <asp:HyperLinkField  DataTextField="vlrAliquota" HeaderText="Aliquota"  NavigateUrl ="~/adm/cadAliquota.aspx"
                                  SortExpression="vlrAliquota" ShowHeader="true" DataNavigateUrlFields="idAliquota,vlrAliquota" DataNavigateUrlFormatString="?idAliquota={0}& vlrAliquota={1}"  >
                                      <ItemStyle HorizontalAlign="Left" Width="30%" />
                                      <HeaderStyle HorizontalAlign="Left" />
        </asp:HyperLinkField>   

    <asp:BoundField DataField="stAliquotapadrao" HeaderText="Padr&#227;o" HtmlEncode="False" SortExpression="stAliquotapadrao">

    <ItemStyle HorizontalAlign="Left" Width="30%" />

    <HeaderStyle HorizontalAlign="Left" />

    </asp:BoundField>

    <asp:BoundField DataField="stAliquotaBloqueada" HeaderText="Bloqueio" HtmlEncode="False" SortExpression="stAliquotaBloqueada" >

    <ItemStyle HorizontalAlign="Left" Width="30%" />

    <HeaderStyle HorizontalAlign="Left" />

    </asp:BoundField>

    <asp:TemplateField Visible="false" >

    <itemtemplate >

    <itemtemplate>

    <asp:Label id="lblid" runat="server" Text='<%# eval("idAliquota") %>'></asp:Label>

    </ItemTemplate>

    </ItemTemplate>

    <ItemStyle Width="4%" />

    </asp:TemplateField>

    <asp:CommandField ShowSelectButton ="True" ShowHeader="True" SelectText="&lt;img src='../img/icon_editar.gif' style='cursor:hand' border=0&gt;" >

    <HeaderStyle CssClass="colunaIconOp" />

    <ItemStyle CssClass="colunaIconOp" />

    </asp:CommandField>

    <asp:CommandField ShowDeleteButton ="True" ShowHeader="True" DeleteText ="&lt;img src='../img/icon_excluir.gif' style='cursor:hand' border=0&gt;">

    <HeaderStyle CssClass="colunaIconOp" />

    <ItemStyle CssClass="colunaIconOp" />

    </asp:CommandField>

    </Columns>

    </asp:GridView>

    sexta-feira, 18 de maio de 2007 12:17
  • Qual foi o erro? Mesmo com TemplateField deveria funcionar (desde que você forneça um valor à propriedade CommandName do LinkButton, senão ele não dispara o evento do GridView).
    sexta-feira, 18 de maio de 2007 16:33
  • bom fiz o seguinte resolvi colocar assim:

    <asp:ButtonField HeaderText="Aliquota" DataTextField="vlraliquota" SortExpression="vlrAliquota" CommandName="seleciona">

    <ItemStyle HorizontalAlign="Left" Width="30%" ForeColor="Black" />

    <HeaderStyle HorizontalAlign="Left" />

    </asp:ButtonField>

     

    o problema é que no rowcommand eu pego os outros itens, menons vlraliquota!

     

    fiz assim:

    Protected Sub DgAliquota_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles DgAliquota.RowCommand

    Dim index As Integer = Convert.ToInt32(e.CommandArgument)

    Dim row As GridViewRow = DgAliquota.Rows(index)

    If e.CommandName = "seleciona" Then

     

    txtaliquota.Text = Convert.ToString(DataBinder.Eval(DgAliquota.Rows(Integer.Parse(e.CommandArgument)).DataItem, "vlraliquota"))

    H_cod.Value = (CType(row.FindControl("lblid"), Label).Text.ToString())

    If row.Cells(2).Text = "Sim" Then

    ddlpadrao.SelectedValue = "1"

    Else

    ddlpadrao.SelectedValue = "0"

    End If

    If row.Cells(3).Text = "Sim" Then

    ddlbloqueio.SelectedValue = "1"

    Else

    ddlbloqueio.SelectedValue = "0"

    End If

    Me.MultiView1.ActiveViewIndex = 0

    End If

    End Sub

    sexta-feira, 18 de maio de 2007 20:31
  • Oi !

     

    Tenta trocar esta linha :

     

    Code Snippet
    txtaliquota.Text = Convert.ToString(DataBinder.Eval(DgAliquota.Rows(Integer.Parse(e.CommandArgument)).DataItem, "vlraliquota"))

     

     

    por esta :

     

    Code Snippet
    txtaliquota.Text = DgAliquota.Rows(Integer.Parse(e.CommandArgument)).DataItem("vlraliquota")

     

    []'s

     

     

     

     

    domingo, 27 de maio de 2007 16:30
  • Oi Dennes! Consegui, fiz o seguinte:

    Protected Sub DgAliquota_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles DgAliquota.RowCreated

    If e.Row.RowType = DataControlRowType.DataRow Then

    Dim addButton As LinkButton = CType(e.Row.Cells(1).Controls(0), LinkButton)

    addButton.CommandArgument = e.Row.RowIndex.ToString

    End If

    End Sub

     

    crie uma isntacia para o buttonfield

    e depois peguei assim:

    no rowcommand:

     

    txtaliquota.Text = CType(row.Cells(1).Controls(0), LinkButton).Text

    [ ] 's

    segunda-feira, 28 de maio de 2007 13:48