2012-10-24 4 views
1

GridView에 3 개의 열 (CompanyName, Volume, counter)이 있습니다. 모든 열을 카운터 열에 넣고 싶습니다. 사용자가 단추를 클릭하면 1 씩 증가시킵니다. 업데이트 명령을 올바르게 설정하는 방법을 모릅니다. 여기에 내가 지금까지 가지고있는 것입니다 :ASP.NET Gridview Buttons

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
     DataSourceID="SqlDataSource1" 
     EmptyDataText="There are no data records to display."> 
     <Columns> 
      <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" 
       SortExpression="CompanyName" /> 
      <asp:BoundField DataField="Volume" HeaderText="Volume" 
       SortExpression="Volume" /> 
      <asp:ButtonField DataTextField="counter" HeaderText="counter" 
      ButtonType="button"/> 

     </Columns> 
    </asp:GridView> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:LiquorStoreConnectionString1 %>" 
     ProviderName="<%$ ConnectionStrings:LiquorStoreConnectionString1.ProviderName %>" 
     SelectCommand="SELECT [CompanyName], [Volume], [counter] FROM [Company]"> 
    </asp:SqlDataSource> 

내가 원하는 것은 그 특정 행에 버튼을 누를 때마다 1 씩 증가하는 것입니다.

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+0

존 감사합니다! 죄송합니다. 제공하신 링크를 읽으 실 것입니다. – vadim

답변

1

아래에 주어진 링크에서보세요 이 시도 할 수 있습니다 :

UpdateCommand="Update COMPANY SET [email protected] +1 WHERE [email protected]" 


     <columns> 
       <asp:BoundField HeaderText="counter" DataField="Counter" />    
      </columns> 

당신이 바인딩 된 필드 이름이 올바른지 있는지 확인하십시오. 이 +1이 바운드 필드와 함께 작동하는지 확인하지 않았습니다. 그렇지 않으면 OnRowCommand를 사용하여 데이터베이스를 수동으로 업데이트해야합니다. 그러면 뷰를 다시 바인드하고 업데이트 된 카운터를 볼 수 있습니다. 더 중요한 것은, 회사의 기본 키가 보이지 않아서 업데이트를 할 수 있다는 것입니다. 그래서 내 샘플은 CompanyName을 사용하고 있으며 이는 위험 할 수 있습니다.

+0

안녕하세요 bugnuker! updatecommand 'UpdateCommand = "업데이트 COMPANY SET counter = @ Counter +1 WHERE Id = @ Id"라는 ID로 기본 키를 만들었습니다. 이것은 각 열의 행을 하나씩 증가시킵니다. 누군가가 하나를 클릭하지 않고 그 특정 행이 1이되지 않으면 모든 카운터 행을 0으로 만들고 싶습니다. – vadim

+0

나는 당신이 OnRowCommand를 할 필요가있을 것이라고 생각한다. 디자인 모드에서 gridview를 클릭하면 그리드 뷰의 속성에 "번개"볼트 아이콘이 생깁니다. 이것을 클릭하십시오. 이 단추를 두 번 누르면 "OnRowCommand"가 표시되고 코드에서 자동으로 이벤트가 만들어집니다. 이제 SQL 업데이트 명령을 작성하면됩니다. "where"절에 대한 인수 (e)에 RowID (바운드 된 경우)가 있습니다. – bugnuker

+0

그러나 "RowCommand"를 가지고있는 "OnRowCommand"는 없지만 두 번 클릭하면 보호 된 GridViewCommandEventHandler (개체 발신자, GridViewCommandEventArgs e) {}가 제공됩니다. – vadim

0

데이터베이스를 업데이트 하시겠습니까? gridview 행 명령에서 단추 클릭 이벤트를 catch 할 수 있습니다. http://msdn.microsoft.com/en-us/library/bb907626.aspx

+0

안녕하세요 Karthi, 예 클릭 할 때마다 데이터베이스를 업데이트하고 싶습니다. – vadim

+0

당신은 rowcommand를 작동시킬 수 있었습니까 ?? 그냥 값을 증가시키고 행 명령에서 호출하는 저장 프로 시저를 생성하십시오 – Karthik