我有DataList
并且我在标头中添加了绑定特定值,我完成了我的代码,但是当我尝试点击标题<a href >
时,它没有重定向到网址。< / p>
<asp:DataList ID="DL_ElarabyNews" runat="server" RepeatColumns="0">
<HeaderTemplate>
<div class="araby-news-title">
<a href='<%#Eval("ArtType_ID","NewsPage.aspx?ArtTypeID="+ Eval("ArtType_ID"))%>'>
</a>
</div>
</HeaderTemplate>
<ItemTemplate>
<div class="all-ads-conatiner">
<div class="single-ads-conainer">
<div class="ads-img">
<asp:Image ID="Img_Elaraby" alt="Lastweek" runat="server" ImageUrl='<%# Eval("Art_Img")%>'
Width="47" Height="34" />
</div>
<div class="ads-text">
<a href='<%#Eval("Art_ID","NewsDetailsPage.aspx?ArtID="+ Eval("Art_ID"))%>'>
<%# Eval("Art_Title")%>
</a>
</div>
</div>
</div>
</ItemTemplate>
</asp:DataList>
答案 0 :(得分:0)
你在做什么并没有多大意义。
如果datalist中有10个项目,那么标题显示哪个?
答案 1 :(得分:0)
看起来您的数据源是按ArtType_ID过滤的,并且您希望在DataList标头中有一个链接以将ID传递给NewsPage.aspx
。
问题是,Header不会重复使用item.So您无法使用ArtType_ID绑定<a>
。但是你可以有一个简单的解决方法。
在代码中添加名为ArtType
的属性和名为GetArtType
的方法,并将数据源绑定到DataList,获取ArtType_ID,保存在ArtType中:
public string ArtType { get; set; }
public string GetArtType()
{
return ArtType;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//datasource is the name of your datasource
ArtType = datasource.First().ArtType_ID.ToString();
DL_ElarabyNews.DataSource = datasource;
DL_ElarabyNews.DataBind();
}
}
现在在标记中你可以访问GetArtType,你的HeaderTemplate应该是这样的:
<HeaderTemplate>
<div class="araby-news-title">
<a href='NewsPage.aspx?ArtTypeID=<%# GetArtType()%>'>Test</a>
</div>
</HeaderTemplate>
希望它有所帮助!