【发布时间】:2012-01-28 01:03:04
【问题描述】:
当我将更新面板放入转发器控件时出现问题,我收到错误,当用户单击链接按钮时,我只需要刷新一个帖子,这是我的代码...
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Repeater ID="Repeater1" runat="server"
OnItemCommand="MyButtonCommandEvent">
<ItemTemplate>
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<div class="post">
<asp:HiddenField ID="postID_hidden" runat="server"
Value='<%# DataBinder.Eval(Container.DataItem,"posts_ID") %>' />
<div class="Thumb">
<img src="thumbs/abdo_thumb.jpg"> </img></div>
<span class="user"><%#DataBinder.Eval(Container.DataItem, "poster_name")%>
</span>
<div class="post-body">
<p>
<%#DataBinder.Eval(Container.DataItem,"description")%>
</p>
</div>
<div class="post-options" style=" height:22px; ">
<span class="first"><%#DataBinder.Eval(Container.DataItem,"post_date")%></span>
<ul style="display:inline; list-style-type: none;">
<li>
<div class="tooltip">
Comments
<img class="tool-img" src="Images/comments.png"> : <%#DataBinder.Eval(Container.DataItem,"comment_num") %>
</img>
</div>
</li>
<li>
<div class="tooltip">
<asp:LinkButton ID="like_linkbtn" runat="server" CommandName="Like"><%#(DataBinder.Eval(Container.DataItem, "name_like").ToString() == "") ? "Like" : DataBinder.Eval(Container.DataItem, "name_like")%></asp:LinkButton>
<img class="tool-img" src="images/likes.png"> : <%#DataBinder.Eval(Container.DataItem,"like_counter") %>
</img></div>
</li>
<li>
<div class="tooltip">
<asp:LinkButton ID="hate_linkbtn" runat="server" CommandName="Hate"><%#(DataBinder.Eval(Container.DataItem, "name_hate").ToString() == "") ? "Hate" : DataBinder.Eval(Container.DataItem, "name_hate")%></asp:LinkButton>
<img class="tool-img" src="images/hate.png"> : <%#DataBinder.Eval(Container.DataItem,"hate_counter") %>
</img></div>
</li>
</ul>
</div>
<div class="finish">
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:Repeater>
错误是:编译器错误消息:CS1061:“System.Web.UI.Control”不包含“DataItem”的定义,并且没有扩展方法“DataItem”接受“System.Web.UI”类型的第一个参数.Control' 可以找到(您是否缺少 using 指令或程序集引用?)。 这让我非常沮丧,请帮忙。 PS:如果我删除了更新面板并将其放在中继器之外,它会起作用(更新面板内的中继器而不是中继器内的更新面板,但这不是我想要的)
【问题讨论】:
-
在Container.DataItem中,容器是直接父控件。将更新面板包裹在其上时,父级将成为更新面板,而不是中继器。我认为你应该使用中继服务器端事件来设置正确的值。
-
@Akhil Thnx 错误通过将 DataBinder.Eval(Container.DataItem, "coloumn_name") 替换为 Eval("Coloumn_name") 来解决,但是当用户点击一个按钮你能帮我吗?
-
按钮在更新面板内部还是外部?
-
它在里面,和我发布的代码一样,但我只是用 Eval("Coloumn_name") 替换了 DataBinder.Eval(Container.DataItem, "coloumn_name"),按钮是
,当我点击它时,我想做回发,以便刷新 div-post,这就像我想要实现的带有类似按钮的 facebook -
@Akhil 所以我想做的就是刷新用户按下按钮“喜欢”的帖子