以下是我的代码片段:
<%for (int i = 1; i <= MessageList.Count; i++)
{
switch (LevelList[i-1])
{
case 0:%>
<div class="well offset1" style="width:80%">
<h1><%= MessageList[i - 1].Header%></h1>
<p><%= MessageList[i - 1].Body%></p>
<ul>
<li style="display:inline">Likes: <%= MessageList[i - 1].NumberOfLikes%></li>
<li style="display:inline">Replies: <%= MessageList[i - 1].NumberOfReplies%></li>
</ul>
<ul>
<li style="display:inline"><asp:Button ID="LikeButton" messID="<%# MessageList[i-1].MessageID %>" runat="server" Text="Like" /></li>
<li style="display:inline"><asp:Button ID="ReplyButton" messID="<%# MessageList[i-1].MessageID %>" runat="server" Text="Reply" /></li>
</ul>
</div>
<%break;
我的问题在于&#34; messID&#34;在这一部分:
<li style="display:inline"><asp:Button ID="LikeButton" messID="<%# MessageList[i-1].MessageID %>" runat="server" Text="Like" /></li>
&#13;
首先,我尝试使用messID="<%= calculated value%>"
并使用Button.Attribute["messID"]
将变量传递给代码隐藏来访问此变量,但是,不是将计算变量作为字符串传递,而是传递了一个字符串, <%= calculated variable%>
。经过一些研究后我发现<%
不能与asp控件一起使用。现在我尝试使用<%#
标记和DataBind()
,但是,现在<%#
标记内的任何内容都无法识别变量i
,它是forloop
的一部分{1}}。为什么会这样?
答案 0 :(得分:0)
为什么不使用html标签?
我想要做的就是在我的页面上进行程序生成按钮,每个按钮都对应一条消息。当用户点击其中一个回复按钮时,它会将他们带到一个可以写回复的页面。
变化
<li style="display:inline"><asp:Button ID="LikeButton" messID="<%# MessageList[i-1].MessageID %>" runat="server" Text="Like" /></li>
到
<li style="display:inline"><a href="xxx.aspx?id=<%=MessageList[i-1].MessageID %>">Like</a></li>