Расчет между столбцами gridview - PullRequest
0 голосов
/ 07 октября 2019

У меня есть текстовое поле, кнопка, gridview и database.mdb в моем проекте.

В виде таблицы отображаются результаты из database.mdb в соответствии со строкой, записанной в текстовом поле. Вид сетки имеет два столбца, первый столбец содержит строку (так же, как текстовое поле), а второй столбец содержит числа.

Я хочу получить число из второго столбца и показать в третьем столбце результат математического вычисления. Возможно ли это?

Например: скажем, 100 - это мой номер во втором столбце, а результат 100-100 * 25/100 (xx * 25/100) равен "75" будет показан в третьем столбцеавтоматически.

Коды подключения к базе данных и коды кнопки-клика:

<asp:AccessDataSource ID="AccessDataSource1" runat="server" 
        DataFile="~/App_Data/database.mdb" 
        SelectCommand="SELECT [Product], [Price] FROM [GENERAL] WHERE ([Product] = ?)">
        <SelectParameters>
            <asp:Parameter Name="Product" Type="String" />
        </SelectParameters>
    </asp:AccessDataSource>
    <asp:GridView ID="GridView1" runat="server" HorizontalAlign="Center" AllowPaging="True" AutoGenerateColumns="False" 
        CellPadding="4" DataSourceID="AccessDataSource1" ForeColor="#333333" 
        GridLines="None" Width="700px" Height="100px" EnableModelValidation="True">
        <RowStyle BackColor="#FFFBD6" ForeColor="#333333" HorizontalAlign="Center" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px"/>
        <Columns>
            <asp:BoundField DataField="Product" HeaderText="Product" SortExpression="Product" HeaderStyle-BorderColor="#CC9966" HeaderStyle-BorderWidth="1px" HeaderStyle-BorderStyle="Solid" >
<HeaderStyle BorderColor="#CC9966" BorderWidth="1px" BorderStyle="Solid"></HeaderStyle>
            </asp:BoundField>
            <asp:BoundField DataField="Price" HeaderText="Price" SortExpression="Price" HeaderStyle-BorderColor="#CC9966" HeaderStyle-BorderWidth="1px" HeaderStyle-BorderStyle="Solid">
           
<HeaderStyle BorderColor="#CC9966" BorderWidth="1px" BorderStyle="Solid"></HeaderStyle>
            </asp:BoundField>
           
        </Columns>

{
        string elist;

        if (TextBox1.Text == "" || TextBox1.Text.Length < 5)
        {

            Label1.Visible = true;
            GridView1.Visible = false;
        }

        else
        {
            elist = TextBox1.Text;
            Label1.Visible = false;
            GridView1.Visible = true;

            AccessDataSource1.SelectParameters["Product"].DefaultValue = elist;
        }

1 Ответ

0 голосов
/ 08 октября 2019

Попробуйте это

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)  
{  
    //Checking the RowType of the Row  
    if(e.Row.RowType==DataControlRowType.DataRow)  
    {  
      int x=Convert.ToInt32(e.Row.Cells[1].Text);
      Double calc= x-x*25/100//your formula for calculation
      e.Row.Cells[2].Text=calc;
    }  
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...