我在ASP.Net中使用Repeater
。我正在访问数据库中的内容。每个id或类的html元素都是相同的。这是一个多重的新标题。有阅读按钮。
我想在新页面中打开一个新页面,其中包含该标题的完整描述 我在分配唯一ID时遇到问题,我从中知道单击了哪个标题。
这是该部分的代码:
<div class="content">
<table>
<tr>
<td class="contl">
<div>
<asp:Repeater ID="RepCountry" runat="server" OnItemCommand="RepCountry_ItemCommand">
<ItemTemplate>
<div class="contentbox">
<div class="postheading">
<%#Eval("title")%>
</div>
<table>
<tr><td> <div class="postimage">
<img src="Admin/images/<%# Eval("img")%>" alt="" height="50%" width="100%" />
</div></td>
<td><div class="discp">
<div class="dpost">
<p style="font-family: Times New Roman">
<%#Eval("p_date")%></p>
</div>
<div class="discp_c">
<p>
<%# Eval("descr").ToString().Substring(0,200).ToString()%></p>
<p style="color: Maroon">
<a id="A1"+ href="Readmore.aspx?oid=" runat="server" onclick="changeid(this.id)">Read More.</a></p>
</div>
<div class="social">
<a href="">
<img src="images/t.png" alt="twtter" /></a> <a href="">
<img src="images/f.png" alt="facebook" /></a> <a href="">
<img src="images/g.png" alt="gmail" /></a> <a href="">
<img src="images/in.png" alt="linkedin" /></a>
</div>
</div></td></tr>
</table>
</div>
</ItemTemplate>
</asp:Repeater>
答案 0 :(得分:1)
我发现您已使用Eval在商品中插入说明:
<div class="discp_c">
<p>
<%# Eval("descr").ToString().Substring(0,200).ToString()%></p>
<p style="color: Maroon">
...
如果我很好地阅读了代码,那么您至少阅读title, descr, img
数据库查询?
如果是,请确保查询还返回文章的ID(主键),并使用Eval
在链接中插入该ID。因此,如果数据库中文章的主键以例如articleID
命名,则从
SELECT xxx as title, yyy as descr, zzz as img ....
到
SELECT id as articleID, xxx as title, yyy as descr, zzz as img ....
然后,您可以使用数据库提供的ID来创建文章的完整链接:
<a runat='server' ....
href='Readmore.aspx?oid=<%# Eval("articleID").ToString()%>'
....>
...</a>
因此Readmore.aspx
页面将准确知道应该打开哪个文章。它将直接作为oid
查询参数,无需额外的工作。
如果您确实需要它,可以使用相同的技巧生成该标记的HTML ID:
<a runat='server' ....
id='ID_<%# Eval("articleID").ToString()%>'
href='Readmore.aspx?oid=........'
....>
...</a>
并且使用它,<a>
标记将具有ID_32131, ID_4532455, ID_1231455
之类的ID,只要数据库查询返回唯一的文章,ID就是唯一的。