2012-10-24 125 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