2012-10-24 127 views
1

我有一個3列的Gridview(公司名稱,卷,計數器)我想計數器欄是所有按鈕,當用戶點擊按鈕時,它將計數器加1。不知道如何正確設置更新命令。以下是我迄今爲止:ASP.NET Gridview按鈕

<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

Hi bugnuker! 我剛剛創建了一個名爲Id的主鍵,其中更新命令爲'UpdateCommand ='Update Company SET counter = @ Counter +1 WHERE Id = @ Id'' 這只是將每列的行增加一個。我希望所有的計數器行都爲零,除非有人點擊一行然後該特定的行變爲1.如果這有意義? – vadim

+0

我想你可能需要做OnRowCommand。 在設計模式下點擊你的gridview,然後在gridview的屬性上,你將會有一個「閃電」螺栓圖標。點擊此。你應該看到「OnRowCommand」,如果你雙擊它,它會自動在代碼中爲你創建事件。現在你只需要編寫一個SQL更新命令。你將在你的「where」子句的參數(e)中擁有RowID(如果它已被正確綁定)。 – bugnuker

+0

我沒有「OnRowCommand」,我確實有「RowCommand」,但是當我雙擊它時,它給了我'protected void GridViewCommandEventHandler(object sender,GridViewCommandEventArgs e){}' – vadim

0

是否要更新數據庫? 您可以在gridview row命令中捕獲按鈕單擊事件。 看看以下鏈接 http://msdn.microsoft.com/en-us/library/bb907626.aspx

+0

嗨Karthi, 是的我希望它能夠在每次點擊後更新數據庫,如果這是可能的。 – vadim

+0

是否能夠使rowcommand工作?只需創建一個存儲過程,將該值遞增並在行命令中調用它 – Karthik