gpt4 book ai didi

asp.net - 在用户控件(ASCX)中动态设置 Gridview DataNavigateUrlFormatString

转载 作者:行者123 更新时间:2023-12-01 09:36:39 25 4
gpt4 key购买 nike

我有个问题不知道能不能解决。

我有一个 aspx 页面,加载取决于用户控件(ascx)的用户事件。

用户控件有一个gridview,我的列之一是超链接。

<asp:HyperLinkField  DataNavigateUrlFormatString='<%page %>'
DataTextField="ReqId" HeaderText="Request No." DataNavigateUrlFields="ReqId" />

我希望在点击该超链接时,它将指向带有参数的同一页面,但我做不到。出于某种原因,所以我尝试了这个:

<%string page = Page.Request.Path + "reqid={0}"; %>

但在页面中,链接将 %page% 作为字符串引用。有人可以指导我怎么做。

附言它曾经像那样工作并且ascx位于解决方案的根文件夹中,当我将所有控件移动到根目录中名为“Controls”的文件夹时问题就开始了

<asp:HyperLinkField  DataNavigateUrlFormatString="?reqid={0}"
DataTextField="ReqId" HeaderText="מספר בקשה" DataNavigateUrlFields="ReqId" />

提前致谢。

最佳答案

使用模板字段并为其添加超链接。

<asp:TemplateField HeaderText="Request No.">
<ItemTemplate>
<asp:HyperLink ID="EditHyperLink1" runat="server"
NavigateUrl='<%# Page.Request.Path + "?reqid=" + Eval("ReqId") %>'
Text='<%# Eval("ReqId") %>' >
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>

或者您可以使用 GridView_RowDatabound 事件处理程序并更改特定控件的 Navigateurl。

protected void myGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink myHL = (HyperLink)e.Row.FindControl("EditHyperLink1");
myHL.NavigateUrl = Page.Request.Path + "?reqid=" + e.Row.Cells[0].Text.ToString();
}
}

我假设 ReqId 存在于第一个单元格中。

关于asp.net - 在用户控件(ASCX)中动态设置 Gridview DataNavigateUrlFormatString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6469155/

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