В этом примере я хочу, чтобы кнопка с идентификатором «PostCommentsButton» была нажата на этот ContentTemplate, который будет запущен, и повторить все в ListView с идентификатором «CommentListView». Но это не сработало. Чего я скучаю?Обновить новый контент с помощью AJAX
В этом примере я беру новый текст из текстового поля и в код позади Я помещаю это новое содержимое из текстового поля с ado.net, и я сохраняю это новое содержимое в базе данных. Проблема в том, что при нажатии кнопки в UpdatePanel новая информация не попала в список с другим контентом. Это происходит только в том случае, если я перезапущу страницу. Я хочу, чтобы ListView в UpdatePanel снова повторялся, чтобы вывести этот новый контент из текстового поля с помощью AJAX при нажатии кнопки. Что мне делать ?
код ASPX:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="PostCommentsButton" />
</Triggers>
<ContentTemplate>
<asp:ListView ID="CommentListView" runat="server" DataSource= '<%# Eval("Comments") %>'>
<ItemTemplate>
<div class="postComments">
<span class="authorComment"><%# Eval("Author") %></span>
:
<span class="commentContent"><%# Eval("Message") %></span>
</div>
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>
код позади:
protected void PostsListView_ItemCommand(object sender, ListViewCommandEventArgs e)
{
//commandName is for recognize the clicked button
if (e.CommandName == "postComment")
{
//get the comment from textbox from current listview iteration
BlogProfileEntities blogProfile = new BlogProfileEntities();
var commentBox = e.Item.FindControl("AddCommentTextbox") as TextBox;
var hiddenFieldPostID = e.Item.FindControl("CurrentPostIDHiddenField") as HiddenField;
string text = commentBox.Text;
var postID = hiddenFieldPostID.Value;
Comment newComment = new Comment()
{
Message = text,
PostID = int.Parse(postID),
Author = Membership.GetUser().UserName
};
blogProfile.Comments.Add(newComment);
blogProfile.SaveChanges();
Код за кодом за кодом за кодом ... –