グリッドビューのすべての行には、Page?id= somethingに移動するボタン/ハイパーリンクがあるはずです。 次に、リダイレクトをキャッチしてページを iframe として印刷する JavaScript があります。この何かは行で既に使用可能です (ただし非表示)。したがって、各フィールドに対して 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();