ogni riga nel mio gridview dovrebbe avere un pulsante/collegamento ipertestuale che naviga alla pagina? Id = qualcosa Poi c'è javascript che cattura il reindirizzamento e stampa la pagina come un iframe. Questo è qualcosa di già disponibile nella riga (ma nascosto). Quindi vorrei fare qualcosa come NavigateUrl = "~/Page.aspx? Id =" + Id.ToString() per ogni campo, ma la cosa è che l'Id è popolato in DataBind() da un'origine dati LINQ.Come aggiungere NavigateUrl di collegamento ipertestuale in GridView
<asp:GridView ID="gridleitNidurstada" runat="server" GridLines="None" AllowPaging="True"
CssClass="mGrid" PagerStyle-CssClass="pgr" DataKeyNames="Id" OnRowDataBound="gridLeit_RowDataBound"
AllowSorting="True" SortedAscendingHeaderStyle-CssClass="sortasc-header" SortedDescendingHeaderStyle-CssClass="sortdesc-header"
OnSorting="gridleitNidurstada_Sorting" CurrentSortField="Id" CurrentSortDir="Ascending"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" Visible="false"/>
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField HeaderText="Print" Text="Print" **anything here?**/>
</Columns>
<PagerStyle CssClass="pgr"></PagerStyle>
<SortedAscendingHeaderStyle CssClass="sortasc-header"></SortedAscendingHeaderStyle>
<SortedDescendingHeaderStyle CssClass="sortdesc-header"></SortedDescendingHeaderStyle>
</asp:GridView>
Il collegamento è qualcosa del genere: potrei farlo lì? Oppure nell'evento rowbound?
IQueryable<model.SomeClass> someClass =
from m in preparePredicate()
select new model.SomeClass
{
Id = m.id,
...
};
gridleitNidurstada.DataSource = someClass;
gridleitNidurstada.DataBind();
Dopo aver riletto la tua domanda, penso che tu sia soddisfatto del primo suggerimento che ho fatto, dal momento che il tuo url sarà sempre lo stesso. Solo il valore del queryparameter è diverso. – Koen
sì, grazie, questo era esattamente ciò di cui avevo bisogno per questo caso, ma la tua modifica in realtà mi ha aiutato con un'idea di follow-up. – fogedi