2013-09-06 9 views
0

레이블을. 그것을 "도움"https://dl.dropboxusercontent.com/u/9446763/code/faq.JPG사용하는 LinkButton 데이터를 업데이트하고 나는 사용자가 도움 또는 도움이되지 나는 내 머리를 시각화하고 같은 기능이 점점 어려움을 겪고있어 두 항목을 평가 할 수있는 FAQ를 만들기 위해 노력하고

나는 사용자가 링크를 클릭 할 수 있도록하려면 다음 :

이 (스택이 나에게 어떤 이유로이 이미지를 삽입하지 않습니다)은 현재 모습입니다 즉시 데이터베이스에 값을 추가하는 페이지를 업데이트하고 텍스트를 업데이트하여 "유용함 (1)", 다른 클릭은 "도움이됩니다 (2)"등등이됩니다 ..

지금 당장 SQL 업데이트 작동하지만 내 유일한 문제는 페이지에서 다시 게시 후 변경 번호를 얻는 것입니다. 지금 내가하는 LinkButton 그냥 완전히 사라지고 난이 남아있어하는 LinkButton은 "도움"을 클릭하면 "(| 도움이되지 (0))"

코드 :

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
       <ContentTemplate> 
        <asp:DataList ID="DataList1" RepeatColumns="1" CellPadding="5" runat="server"> 
         <ItemTemplate> 
          <dl> 
           <dt> 
            <asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Question") %>'></asp:Label></dt> 
           <dd> 
            <asp:Label ID="Label2" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Answer") %>'></asp:Label> 
            (<asp:LinkButton ID="Helpful" CommandName='<%# DataBinder.Eval(Container.DataItem, "Helpful") %>' 
             CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>' OnCommand="Submit_Helpful" 
             runat="server"> 
             Helpful (<asp:Label ID="HelpfulLbl" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Helpful") %>'></asp:Label>)</asp:LinkButton> 
            | <a href="#">Not Helpful (0)</a>)</dd> 
          </dl> 
         </ItemTemplate> 
        </asp:DataList> 
       </ContentTemplate> 
</asp:UpdatePanel> 

코드 뒤에 :

protected void Submit_Helpful(object sender, CommandEventArgs e) 
    { 
     int currentamt = Convert.ToInt32(e.CommandName); 
     int newamt = currentamt + 1; 
     using (SqlConnection conn = new SqlConnection("")) 
     { 
      SqlCommand cmd = new SqlCommand(@"UPDATE FAQ set [email protected] where ID = '" + e.CommandArgument + "'", conn); 
      conn.Open(); 
      cmd.Parameters.Add("@f1", SqlDbType.Int).Value = newamt; 
      cmd.ExecuteNonQuery(); 
     } 
    } 

답변

1
switch (e.CommandName) 
{ 
    case "Helpful": 
     ((sender as LinkButton).FindControl("HelpfulLbl") as Label).Text = "Helpful (" + newamt.ToString() + ")" ; 
     break; 
    case "Not Helpful": 
     // The "Not Helpful" is not part of the LinkButton. 
     break; 
} 
+0

그는 코드를 실행하지 않고 레이블을 업데이트하려고합니다. – paqogomez

+0

이 코드를 시도 할 때 "암시 적으로 'int'유형을 'string'"유형으로 변환 할 수 없습니다. 나는 (보낸 사람 LinkButton) 시도했다. 텍스트 = "테스트"; 그 코드는 작동하지만 사용자가 제안한 코드는 작동하지 않습니다. – techora

+0

@kcray가 업데이트되었습니다! – Manazu5351