尝试数据绑定时无法识别变量

时间:2017-10-28 18:57:21

标签: c# asp.net

以下是我的代码片段:

<%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;在这一部分:

&#13;
&#13;
<li style="display:inline"><asp:Button ID="LikeButton" messID="<%# MessageList[i-1].MessageID %>" runat="server" Text="Like" /></li>
&#13;
&#13;
&#13;

首先,我尝试使用messID="<%= calculated value%>"并使用Button.Attribute["messID"]将变量传递给代码隐藏来访问此变量,但是,不是将计算变量作为字符串传递,而是传递了一个字符串, <%= calculated variable%>。经过一些研究后我发现<%不能与asp控件一起使用。现在我尝试使用<%#标记和DataBind(),但是,现在<%#标记内的任何内容都无法识别变量i,它是forloop的一部分{1}}。为什么会这样?

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>