gpt4 book ai didi

c# - ASP :GridView HYPERLINKFIELD - asp code inside datanavigateurlformatstring

转载 作者:太空狗 更新时间:2023-10-30 01:05:43 30 4
gpt4 key购买 nike

我有一个页面可以按名称搜索产品。在许多页面中,我都使用产品代码。如果用户不知道产品代码,我让他去这个页面,按名字搜索,然后选择一个结果,回到他来自的页面。

在按名称搜索的结果中,我设置了一个将重定向到特定页面的 HyperLinkField,其中包含产品代码的参数。

我的代码是这样的:

 <asp:GridView ID="GridView1" Runat="server" 
DataSource='<%# GetData(pName.Text) %>' AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Name">
<ItemStyle HorizontalAlign="Center"
VerticalAlign="Middle"></ItemStyle>
</asp:BoundField>
<asp:BoundField DataField="Code"></asp:BoundField>
<asp:ImageField ControlStyle-Width="150px" ControlStyle-Height="150px" DataImageUrlField="PictureURL" ></asp:ImageField>
<ASP:HYPERLINKFIELD text=">>" datanavigateurlfields="Code" datanavigateurlformatstring="priceUpdater.aspx?ProductCode={0}"></ASP:HYPERLINKFIELD>
</Columns>
</asp:GridView>

其中 GetData 是一个函数,它返回具有字段、名称、代码、图像等的 Product 类型的对象。

如您所见,HYPERLINKFIELD 中的此链接将重定向到一个名为 priceUpdater 的页面,其中包含产品代码参数。

我希望这个页面是动态的。我试过像这样向搜索页面添加一个参数

 <%string pageRequested = Page.Request.QueryString["SearchScreen"];%>

现在我正在尝试像这样使用 HYPERLINK:

<ASP:HYPERLINKFIELD text=">>" datanavigateurlfields="Code"  datanavigateurlformatstring="<%=pageRequested%>.aspx?ProductCode={0}"></ASP:HYPERLINKFIELD> 

但是链接指向的页面与写入的一样是纯文本 (http://mysite.com/%3C%=pageRequested% >.aspx?ProductCode=2450)

我怎样才能让它工作?

谢谢!

最佳答案

如果您想使用 HyperLinkField,您需要使用 pageRequested 查询字符串参数附带的值来扩展 GetData 方法返回的数据源对象。

在这种情况下,HyperLinkField 的标记如下:

<asp:HyperLinkField text=">>" 
datanavigateurlfields="PageRequested,Code"
datanavigateurlformatstring="{0}.aspx?ProductCode={1}"></asp:HyperLinkField>

但这只有在您将 PageRequested 作为公共(public)字段或属性添加到由 GetData 方法返回的对象时才有效。

如果这不是一个选项,那么您需要实现自己的 "LinkField" 控件,继承自 DataControlField 或使用 ItemTemplate Nitin 建议.

关于c# - ASP :GridView HYPERLINKFIELD - asp code inside datanavigateurlformatstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17649296/

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