2010-01-23 5 views
1

나는 변화 이벤트에 대한 등급 값을 업데이트하고있는 sql 데이터 소스를 사용하여 데이터베이스에 해당 값을 저장하는 Ajax 등급 컨트롤이있는 gridview가 있으며 변경 값을 표시하려고합니다. 다른 레이블.하지만 내가 데이터베이스에 있지만 레이블에 변경하지 않는 값을 업데이 트하고 있습니다. 나에게이 코드를 사용하고있는 동시에 내가 어떻게 lbel 값을 바꿀 수 있는지 말해주세요.gridview의 레이블 값을 다른 값으로 업데이트하는 방법

<asp:GridView ID="GVTweet" runat="server" AllowSorting="True" DataKeyNames="id" AllowPaging="true" 
           AutoGenerateColumns="False" GridLines="Horizontal" PageSize="15" Width="700px" 
           onselectedindexchanged="GVTweet_SelectedIndexChanged" 
           onrowcancelingedit="GVTweet_RowCancelingEdit" 
           onrowediting="GVTweet_RowEditing" 
           onrowupdated="GVTweet_RowUpdated" onrowupdating="GVTweet_RowUpdating" 
           DataSourceID="SqlDataSource2" 
           onpageindexchanging="GVTweet_PageIndexChanging" > 

<HeaderStyle /> 
           <Columns> 
<asp:TemplateField HeaderImageUrl="~/images/rate1.png" 
             HeaderStyle-CssClass="headerCss1" HeaderText="Rate(1-5)" 
             SortExpression="Rating" > 
             <ItemTemplate> 
              <table border="0" cellpadding="0" cellspacing="0" width="auto"> 
               <tr style="width:150px;" valign="top" > 
                <td style="height:30px;"> 
                <asp:Label ID="lblTotalRate" runat="server" 
                  Text='<%#DataBinder.Eval(Container.DataItem, "TotalRate")%>'></asp:Label> 

                </td> 
               </tr> 
               <tr style="width:150px;" valign="top" > 
                <td style="height:30px;"> 

                 <asp:UpdatePanel ID="updtpnlTweet" runat="server"> 
                  <ContentTemplate> 
                   <cc1:Rating ID="rateTweet" runat="server" CurrentRating='<%# Bind("Rating") %>' 
                    EmptyStarCssClass="empatyStarRating" FilledStarCssClass="filledStarRating" 
                    MaxRating="5" onchanged="rateTweet_Changed" StarCssClass="ratingStar" 
                    WaitingStarCssClass="savedStarRating"> 
                   </cc1:Rating> 
                  </ContentTemplate> 
                 </asp:UpdatePanel> 
                </td> 
               </tr> 
              </table> 
             </ItemTemplate> 
             <HeaderStyle CssClass="headerCss1" /> 
           </asp:TemplateField> 

이 내가 사용하는 HTML 내가이 라벨 lblTotalRate에서 그 갱신 한 후 그 평가 등급을합니다.

protected void rateTweet_Changed(object sender, AjaxControlToolkit.RatingEventArgs e) 
{ 
    try 
    { 
     // cast rating control which has initiated the call: 
     AjaxControlToolkit.Rating myRating = (AjaxControlToolkit.Rating)sender; 
     // regular expression which will help identifying row number: 
     System.Text.RegularExpressions.Regex rexLineNo = new System.Text.RegularExpressions.Regex("ctl\\d+"); 
     // update the record based on the recodrd id 
     this.updateRating(this.ProductId(rexLineNo.Match(myRating.UniqueID).ToString()), e.Value); 
     // the above line does the following: 
     // rexLineNo.Match(myRating.UniqueID).ToString() - finds "ctl and line number 

     //GVTweet.DataSourceID = "SqlDataSource2"; 
     // GVTweet.DataBind(); 
     GVTweet_RowUpdated(sender2, e2); 
    // this.Page.Form.Action = "AddRating()"; 

     // SqlDataSource2_Updated(sender1, e1); 

    } 
    catch 
    { 

    } 

} 

친구가있는 경우 알려 주시기 바랍니다 .javascript와 두 가지 모두 괜찮습니다.

enter code here 

답변

1

내가 코드에서 볼 수 있듯이 코드의 조각이 라벨은 UpdatePanel에 아닙니다까지, 어쨌든 ... 누락 된 것 같습니다 코드 뒤에 코드입니다. 예상 된 동작이 두 컨트롤 모두 비동기 적으로 변경하는 경우 Label에서 부분 업데이트를 관리하거나 전체 페이지 포스트 백을 트리거해야합니다 (원하는 것은 아닐 수도 있습니다).

+0

답장을 보내 주셔서 감사합니다. 나는 updatepanel 내에 레이블을 넣었지만 아무런 해결책도 얻지 못했습니다. –

+0

레이블 텍스트 업데이트를 트리거하는 행과 함께 업데이트 된 코드를 게시 할 수 있습니까? – mamoo

관련 문제