2017-01-05 13 views
0

asp.net Webフォームでlistviewとajaxを使用しています。そのフォームの一部では、読者が肯定的または否定的に評価できるコメントを表示します。 この値は、ページがリフレッシュされない限り更新されません。ページをリフレッシュせずに値を更新する方法はありますか?ListViewの値をasp.net Webフォームのajaxで更新する方法

<asp:ScriptManager ID="ScriptManager" runat="server" EnablePageMethods="true"> 
    </asp:ScriptManager> 
     <asp:UpdatePanel ID="UpdatePanel" runat="server"> 
      <ContentTemplate> 
       <asp:ListView ID="ListView1" runat="server" OnItemCommand="ListView1_ItemCommand"> 
        <ItemTemplate> 
         <div class="row comm_info_bar "> 
          <div class="col-md-5 RightDisplay"><%# Eval("name") %></div> 
          <div class="col-md-5 comm_info_date"><%# Eval("date") %></div> 

          <asp:LinkButton ID="negBtn" class="glyphicon glyphicon-minus voteCommentIcon voteContNeg text-danger smallGlyph" runat="server" CommandName="negative" CommandArgument='<%#Eval("id")%>' /> 

          <asp:Label ID="lblnegative" name="lblnegative" class=" voteNumNeg" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "negative") %>'></asp:Label> 

          <asp:LinkButton ID="posBtn" class="glyphicon glyphicon-plus voteCommentIcon voteContNeg text-success smallGlyph" runat="server" CommandName="positive" CommandArgument='<%#Eval("id")%>' /> 
          <asp:Label ID="lblpositive" class="voteNumPos" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "positive") %>'></asp:Label> 

         </div> 
         <div class="row"> 
          <div class="col-md-12 comments"><%# Eval("text") %></div> 
         </div> 
        </ItemTemplate> 
       </asp:ListView> 
      </ContentTemplate> 
     </asp:UpdatePanel> 

とコードで:

static List<Int64> commentsUser = new List<long>(); 
protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e) 
{ 
    string name = e.Item.DataItemIndex.ToString(); 
    long commentId = Convert.ToInt64(e.CommandArgument); 
    ArticleCommentsDataClass ArticleComment = new ArticleCommentsDataClass(); 

    if (e.CommandName == "positive") 
    { 
     if (!searchcomments(commentId)) 
     { 
      ArticleComment.Comments_positive(commentId); 
      commentsUser.Add(commentId); 
     } 
    } 
    else 
    { 
     if (!searchcomments(commentId)) 
     { 
      ArticleComment.Comments_negative(commentId); 
      commentsUser.Add(commentId); 
     } 
    } 
} 

はこれを行う方法のアイデアを持っている人はいますか?

+0

は、あなたが再びグリッドをバインドしてくださいすることができますことを、この記事をチェックしてください! –

+0

ありがとうございました。 – jalalhojati

答えて

0

これは、コマンドを実行する前にバインドしている(グリッドのデータを読み取っている)ようです。コマンドによってデータが変更されるため、グリッドを再バインドするか、他の方法で更新する必要があります。

は、あなたの操作がItemCommandで行われた後talks about when each event is raised

+0

ありがとうございました。どうもありがとう – jalalhojati

関連する問題