gpt4 book ai didi

asp.net - 如何将navigateurl添加到gridview中的超链接

转载 作者:行者123 更新时间:2023-12-02 03:07:35 25 4
gpt4 key购买 nike

我的 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>

绑定(bind)是这样的:我可以在那里做吗?或者在 rowbound 事件中?

IQueryable<model.SomeClass> someClass = 
from m in preparePredicate()
select new model.SomeClass
{
Id = m.id,
...
};
gridleitNidurstada.DataSource = someClass;
gridleitNidurstada.DataBind();

最佳答案

您可以使用以下语法:

<asp:HyperLinkField DataNavigateUrlFields="col1,col2" DataNavigateUrlFormatString="gotopage.aspx?p1={0}&p2={1}" Text="Print">

更多信息herehere在 MSDN 上。

编辑:

<小时/>

如果您在创建网格时不知道确切的 URL,则需要做更多的工作。我本周使用 itemtemplate 完成的一个示例。但为了使用它,您必须将 EnableSortingAndPagingCallbacks 设置为 false。并为此在代码后面做一些额外的工作。我只在网格上使用了分页,所以我可以提供这个示例。标记:

<asp:GridView ID="gridViewTicketsClosed" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="None" EnableSortingAndPagingCallbacks="False" AutoGenerateColumns="False"
AllowPaging="True" OnRowDataBound="gridViewTicketsClosed_RowDataBound" OnPageIndexChanging="GridViewPageIndexChanging">
<PagerSettings Mode="NextPrevious" NextPageText="Next" PreviousPageText="Previous" />
<Columns>
<asp:BoundField DataField="TicketId" HeaderText="Nr.">
<ItemStyle Width="20px" />
</asp:BoundField>
<asp:BoundField DataField="DateStarted" DataFormatString="{0:dd/MM/yyyy HH:mm}" HeaderText="Date">
<ItemStyle Width="100px" />
</asp:BoundField>
<asp:BoundField DataField="President" HeaderText="President">
<ItemStyle Width="100px" />
</asp:BoundField>
<asp:BoundField DataField="TicketTypeId" HeaderText="TicketType"></asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="lnkActionLog" runat="server" Text="Log"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

隐藏代码:

protected void gridViewTicketsClosed_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var hyperLink = e.Row.FindControl("lnkActionLog") as HyperLink;
if (hyperLink != null)
hyperLink.NavigateUrl = CreateShowActionLogUrl(e.Row) + "?id="+ DataBinder.Eval(e.Row.DataItem, "TicketId");
}
}

关于asp.net - 如何将navigateurl添加到gridview中的超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11263879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com