使用 to 参数用于带有 Eval 的查询字符串
本文关键字:Eval 查询 字符串 to 参数 用于 使用 | 更新日期: 2023-09-27 18:30:51
我有一个数据列表,里面有一个超链接,在navigateurl中,我想使用QueryString。这是 asp:DataList 的数据源:
public void GalleryListDS()
{
int UserID = Convert.ToInt32(ViewState["UserID"]);
var n = from gi in DataContext.Context.GalleryImages
join g in DataContext.Context.Galleries
on gi.GalleryID equals g.GalleryID
where g.UserID == UserID && gi.IsAlbumImage == true
select new
{
UserID=g.UserID,
GalleryID = g.GalleryID,
ImageDescription = gi.ImageDescription,
GalleryName=g.GalleryName,
ImageFileName = gi.ImageFileName
};
dlGalleryList.DataSource = n;
dlGalleryList.DataBind();
}
这是我的数据列表:
<asp:DataList ID="dlGalleryList" runat="server" RepeatColumns="3">
<ItemTemplate>
<div class="gallery">
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("GalleryID","~/Profile/UserImages.aspx?ImgID={0}") %>'>
'<%# Eval("GalleryName")%>'
</asp:HyperLink>
</div>
</ItemTemplate>
</asp:DataList>
我希望我的查询字符串有一个参数,如下所示:
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("GalleryID","UserID","~/Profile/UserImages.aspx?ImgID={0}&ProfileID={1}") %>'>
但这并没有达到预期的结果。
使用 <%=
而不是 <%#
喜欢-
NavigateUrl='<%= Eval("GalleryID","UserID","~/Profile/UserImages.aspx?ImgID={0}&ProfileID={1}") %>'
Eval
具有以下语法:
public static string Eval(
Object container,
string expression,
string format
)
[顺便说一下,你可以跳过容器,]用:
NavigateUrl='<%#CombinePath(
DataBinder.Eval(Container.DataItem,"GalleryID","~/Profile/UserImages.aspx?ImgID={0}").ToString(),
DataBinder.Eval(Container.DataItem,"UserID","&ProfileID={0}").ToString()) %>'
你可以这样做
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%= "~/Profile/UserImages.aspx?ImgID=" + Eval("GalleryID") + "&ProfileID=" + Eval("UserID") %>'>