Я хочу получить доступ к значению метки в коде позади страницы

Я хочу получить доступ к значению метки в коде за страницей.

int a = int.Parse(Label5.Text);
if (a <= 10)
{
    Label5.BackColor = System.Drawing.Color.Red;
}

<asp:Label CssClass="txtStock" ID="Label5" runat="server" Text='<%# Eval("Pquant") %>'></asp:Label>

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


person Anil Maurya    schedule 16.10.2019    source источник


Ответы (1)


Вы не можете получить доступ к Label5 в отделенном коде, потому что это часть элемента управления данными, такого как FormView, GridView, Repeater или что-то в этом роде. Таким образом, этот Label существует не только один раз — он существует в каждом элементе вашего элемента управления данными.

Если вы хотите установить BackColor динамически, вы можете сделать это в методе привязки данных (например, GridView)

protected void YourGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        Label Label5 = (Label)e.Row.FindControl("Label5");
        if (int.Parse(Label5.Text) <= 10)
        {
            Label5.BackColor = System.Drawing.Color.Red;
        }
    }
}

или сделать прямо в Label:

<asp:Label CssClass="txtStock" ID="Label5" runat="server" Text='<%# Eval("Pquant") %>'
BackColor='<%# int.Parse(Eval("Pquant")) <= 10 ? System.Drawing.Color.Red : System.Drawing.Color.Black %>' 
></asp:Label>
person fubo    schedule 16.10.2019