列表视图中项的动态 Id 属性

本文关键字:动态 Id 属性 视图 列表 | 更新日期: 2023-09-27 18:36:01

我正在 ASP.NET Web表单中开发一个简单的留言板,并在ListView控制器中列出所有帖子。我的代码看起来像这样:

<ItemTemplate>
   <article class="post">
       <div class="postinfo">
           <div class="postauthor">
               Author: <strong><%# Eval("Author") %></strong>
           </div>
           <div class="postdate">
               Date: <strong><%# Eval("PostDate", "{0:D}") %></strong>
           </div>
           <div class="postvotes">
               <asp:Button class="postupvote" id='up<%# Eval("Id") %>' runat="server" />
               <asp:Label ID="postvotescount_<%# Eval("Id") %>" class="postvotescount" runat="server" Text="<%# Eval("Votes") %> votes"></asp:Label>
               <asp:Button class="postdownvote" id='down<%# Eval("Id") %>' runat="server" />
           </div>
       </div>
       <div class="postcontent"><%# Eval("Text") %></div>
   </article>
</ItemTemplate>

我的问题是投票功能。我想要 css id 属性,其中包含帖子的唯一数据库 ID。这样我就会知道帖子的 ID,它是投票支持的。那么这是否可能,如果没有,我如何实现这一目标?

谢谢!

列表视图中项的动态 Id 属性

您可以使用 ClientIdMode 并将其设置为可预测

http://msdn.microsoft.com/en-us/library/system.web.ui.clientidmode.aspx

<asp:ListView ID="ListView1" 
              ClientIDMode="Predictable" 
              ClientIDRowSuffix="ProductID"  
              DataSourceID="XmlDataSource1" runat="server" >
<ItemTemplate>
</ItemTemplate>
</asp:ListView>

这假定你使用的是 .Net 4.0 或更高版本。