Inquiridor
HyperLinkField multiview

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
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.
-
-
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"
<asp:BoundField DataField="stAliquotapadrao" HeaderText="Padrã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="<img src='../img/icon_editar.gif' style='cursor:hand' border=0>" > <HeaderStyle CssClass="colunaIconOp" /> <ItemStyle CssClass="colunaIconOp" /> </asp:CommandField> <asp:CommandField ShowDeleteButton ="True" ShowHeader="True" DeleteText ="<img src='../img/icon_excluir.gif' style='cursor:hand' border=0>"> <HeaderStyle CssClass="colunaIconOp" /> <ItemStyle CssClass="colunaIconOp" /> </asp:CommandField> </Columns> </asp:GridView>
SortExpression="vlrAliquota" ShowHeader="true" DataNavigateUrlFields="idAliquota,vlrAliquota" DataNavigateUrlFormatString="?idAliquota={0}& vlrAliquota={1}" >
<ItemStyle HorizontalAlign="Left" Width="30%" />
<HeaderStyle HorizontalAlign="Left" />
</asp:HyperLinkField> -
-
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" Thentxtaliquota.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" Thenddlpadrao.SelectedValue =
"1" Elseddlpadrao.SelectedValue =
"0" End If If row.Cells(3).Text = "Sim" Thenddlbloqueio.SelectedValue =
"1" Elseddlbloqueio.SelectedValue =
"0" End If Me.MultiView1.ActiveViewIndex = 0 End If End Sub -
Oi !
Tenta trocar esta linha :
Code Snippettxtaliquota.Text = Convert.ToString(DataBinder.Eval(DgAliquota.Rows(Integer.Parse(e.CommandArgument)).DataItem, "vlraliquota"))por esta :
Code Snippettxtaliquota.Text = DgAliquota.Rows(Integer.Parse(e.CommandArgument)).DataItem("vlraliquota")[]'s
-
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 Subcrie uma isntacia para o buttonfield
e depois peguei assim:
no rowcommand:
txtaliquota.Text =
CType(row.Cells(1).Controls(0), LinkButton).Text[ ] 's