2013-02-26 2 views
1

В этом примере я хочу, чтобы кнопка с идентификатором «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(); 
+0

Код за кодом за кодом за кодом ... –

ответ

0

Я не вижу текстовое поле в вашем примере. Если текстовое поле не находится на панели обновления, которая вызывается, когда появляется сообщение о просмотре списка, я не думаю, что вы получите текущее значение. Я бы заподозрил, что если вы поместите точку останова в свою переменную commentBox, вы увидите, что она возвращается как ничто. Если это не ваш полный код, опубликуйте все.

Смежные вопросы