ฉันต้องการเข้าถึงค่าป้ายกำกับในโค้ดด้านหลังหน้า

ฉันต้องการเข้าถึงค่าป้ายกำกับในโค้ดด้านหลังหน้า

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 ในโค้ดด้านหลังได้เนื่องจากเป็นส่วนหนึ่งของ datacontrol เช่น FormView, GridView, Repeater หรือบางส่วน ดังนั้น Label นี้จึงไม่ได้มีอยู่เพียงครั้งเดียว แต่มีอยู่ในทุกรายการของการควบคุมข้อมูลของคุณ

หากคุณต้องการตั้งค่า BackColor ของคุณแบบไดนามิก คุณสามารถทำได้ในวิธี Databinding (เช่น 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