C # Как получить предыдущее значение в той же метке в ListView_ItemDataBound? - PullRequest
0 голосов
/ 30 апреля 2019

Я должен рассчитать текущее значение после вычитания предыдущего значения, но я не знаю, как найти предыдущее значение в моем ListView1_ItemDataBound
Я нашел только для текущего значения:

Label Point = (Label) e.Item.FindControl ("Point") as Label;

Например, «точка» дает

1000
2000
5000
7000

А теперь я должен вычислить, сколько, например, этих 7000 - 5000 будет

              <asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1" GroupItemCount="20" OnItemDataBound="ListView1_ItemDataBound">
           <AlternatingItemTemplate>
                    <td runat="server">
                        <asp:Label ID="Point" runat="server" Text='<%# Eval("Point") %>' />
                        <br />
                        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                   </td>
                    </AlternatingItemTemplate>
                <EditItemTemplate>
                </EditItemTemplate>  
                <GroupTemplate>
                    <tr id="itemPlaceholderContainer" runat="server">
                        <td id="itemPlaceholder" runat="server"></td>
                    </tr>
                </GroupTemplate>  
                <InsertItemTemplate>
                   </InsertItemTemplate>

                <ItemTemplate>
                    <td runat="server">
                        <asp:Label ID="Point" runat="server" Text='<%# Eval("Point") %>' />
                        <br />
                        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                   </td>
                </ItemTemplate>
                <LayoutTemplate>
                    <table runat="server">
                        <tr runat="server">
                            <td runat="server">
                                <table id="groupPlaceholderContainer" runat="server" border="0" style="">
                                    <tr id="groupPlaceholder" runat="server">
                                    </tr>
                                </table>
                            </td>
                        </tr>
                    </table>
                </LayoutTemplate>
                  <SelectedItemTemplate>
                    <td runat="server">
                        <asp:Label ID="Point" runat="server" Text='<%# Eval("Point") %>' />
                        <br />
                        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                   </td>
                </SelectedItemTemplate>
              </asp:ListView>
        </div>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:PS_TestConnectionString %>" SelectCommand="SELECT [Point] FROM [END]"></asp:SqlDataSource>

1 Ответ

0 голосов
/ 30 апреля 2019

Я проверяю твой код в себе.Исходя из структуры программы, данные должны обрабатываться управляющей частью бизнес-логики.

Это означает, что программа отображает манипулированные данные в части просмотра, которая теперь является html-страницей.

Я считываю данные из базы данных SQL напрямую с помощью этого примера кода, как показано ниже:

protected void Page_Load(object sender, EventArgs e)
{
    string connectionString;
    SqlConnection cnn;
    connectionString = @"Data Source=(LocalDb)\.;Initial Catalog=asp-Points;Integrated Security=True;AttachDBFilename=|DataDirectory|\Database1.mdf";
    cnn = new SqlConnection(connectionString);
    cnn.Open();

    SqlCommand command;
    SqlDataReader dataReader;
    string sql, Output = "";
    sql = "Select [Point] from [dbo].[table]";
    command = new SqlCommand(sql, cnn);
    dataReader = command.ExecuteReader();

    // This logic to handle subtraction of data from database.
    while (dataReader.Read())
    {
        int point = Convert.ToInt16(dataReader.GetValue(0));
        if (prev != -1)
        {
            calcedPoint = point - prev;
            Output = Output + calcedPoint.ToString() + "</br>";
        }
        prev = point;
    }
    Response.Write(Output);
    dataReader.Close();
    command.Dispose();
    cnn.Close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...