1

我有一个包含 3 列(CompanyName、Volume、counter)的 Gridview 我希望计数器列是所有按钮,当用户单击按钮时,它会将计数器增加 1。我不确定如何正确设置更新命令。这是我到目前为止所拥有的:

<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。

4

2 回答 2

1

你可以试试这个:

... UpdateCommand="Update COMPANY SET counter=@Counter +1 WHERE CopmanyName=@Company"
<columns> 
    <asp:BoundField HeaderText="counter" DataField="Counter" />             
</columns>

确保绑定的字段名称正确。我还没有测试过 this + 1 是否适用于绑定字段。如果没有,那么我们将不得不使用 OnRowCommand 手动更新数据库,然后您可以重新绑定视图并查看更新的计数器。更重要的是,我看不到贵公司的良好主键,因此您可以进行更新...所以我的示例使用的是 CompanyName,这是危险的。

于 2012-10-24T19:04:28.637 回答
0

你想更新数据库吗?您可以在 gridview 行命令中捕获按钮单击事件。看看下面给出的链接 http://msdn.microsoft.com/en-us/library/bb907626.aspx

于 2012-10-24T18:32:55.453 回答