none
修改显示在girdview中的值 RRS feed

  • 问题

  • 大家好,
    在我的数据库中我有一栏是用来存放价格的,我希望呢我有一个输入框可以在页面中改变这个价格,请问如何实现。
    2016年10月24日 3:00

全部回复

  • 你好,

    据我所知,gridview中有一个OnRowDataBound方法,在这个方法中我们可以改变显示在girdview中的值。

    所以我们可以使用一个textbox来存放你的折扣比如输入1.1

    那么我们在这个 OnRowDataBound方法中就可以改变每一行所显示的值。

    具体代码如下:

     GridView1:
             <br/>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" DataKeyNames="ID" DataSourceID="SqlDataSource1">
                <Columns>
                    <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
                    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                    <asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price" />
                </Columns>
            </asp:GridView>
            <br/>
            GridView2:
             <br/>
                 <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1">
                <Columns>
                    <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
                    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                    <asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price" />
                </Columns>
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MysqlConnectionString %>" SelectCommand="SELECT * FROM [Catalog]"></asp:SqlDataSource>
        
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" />

    后台代码:

       protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow && Textbox1.Text != null)
                {
                    TableCell statusCell = e.Row.Cells[2];
                    statusCell.Text = (Convert.ToInt32(statusCell.Text) * Convert.ToInt32(Textbox1.Text) ).ToString();
                }
            }

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已建议为答案 Angie Xu 2016年11月10日 5:24
    2016年10月24日 12:36