我的 gridview 中的每一行都应该有一个按钮/超链接导航到 Page?id= something 然后有 javascript 可以捕获重定向并将页面打印为 iframe。这东西在行中已经可用(但被隐藏了)。所以我想为每个字段做类似 NavigateUrl = "~/Page.aspx?id=" + Id.ToString() 的事情,但问题是 Id 是从 LINQ 数据源填充到 DataBind() 中的。
<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>
绑定是这样的:我可以在那里做吗?还是在 rowbound 事件中?
IQueryable<model.SomeClass> someClass =
from m in preparePredicate()
select new model.SomeClass
{
Id = m.id,
...
};
gridleitNidurstada.DataSource = someClass;
gridleitNidurstada.DataBind();