簡體   English   中英

從代碼后面設置文本

[英]Set text from code behind

我根據情況將標簽文本設置為空。 在ascx文件中,我設置如下代碼:

<td runat="server" id="tdAvailableD" class="text-center" style ="font-size: 12px">
  <asp:Label ID="lblAvailable" runat="server" ForeColor="Red" Visible="true" Text=""></asp:Label></td>

在ascx.cs文件中,我設置如下代碼:

private void CheckQuantityError()
    {
        for (int i = 0; i < dlDiscountedProducts.Items.Count; i++)
        {
            {
                DropDownList qty = (DropDownList)dlDiscountedProducts.Items[i].FindControl("ddlQuantity");
                HiddenField productId = (HiddenField)dlDiscountedProducts.Items[i].FindControl("hdnProductID");
                HiddenField discountRuleId = (HiddenField)dlDiscountedProducts.Items[i].FindControl("hdnDiscountRuleId");
                //HiddenField AvailStatus = (HiddenField)dlDiscountedProducts.Items[i].FindControl("hdnAvailStatus");
                //HtmlGenericControl spanAvailStatus = (HtmlGenericControl)dlDiscountedProducts.Items[i].FindControl("spanAvailStatus");
                Label lblOutofStockError = (Label)dlDiscountedProducts.Items[i].FindControl("lblOutofStockError");
                Label lblAvailable = (Label)dlDiscountedProducts.Items[i].FindControl("lblAvailable");
                DCShoppingCartItem shoppingCartItem = new DCShoppingCartItem();

                if (null != Product)
                {
                    bool status = false;

                    try
                    {
                        using (new AcsServiceContextScope())
                        {
                            status = AcsServiceContextScope.Current.Products.GetAxStockAvailability(new GetStockAvailabilityRequest()
                            {
                                ModelNumber = Product.ModelNumber,
                                Quantity = 1,
                                ProductId = Product.Id
                            }).StockStatus;
                        }
                    }
                    catch (Exception ex)
                    {
                        Logging.EventLogger.LogEvent(ex);
                    }

                    if (status == true)
                    {
                        //spanAvailStatus.Attributes["class"] = "glyphicon glyphicon-remove";//available
                        lblAvailable.Visible = true;
                        lblAvailable.Text = "In Stock";
                        lblOutofStockError.Visible = true;
                        lblAlert.Visible = true;

                    }
                    else
                    {
                        //spanAvailStatus.Attributes["class"] = "glyphicon glyphicon-ok";//not available
                        lblAvailable.Visible = true;
                        lblAvailable.Text = "No Stock";
                        lblOutofStockError.Visible = true;
                        lblAlert.Visible = true;
                        //qty.BackColor = System.Drawing.Color.Yellow;

                    }
                }


            }
        }

    }

但是文本不會顯示在頁面中。該功能應顯示,如果該項目有數量,則它將顯示在庫存中。

嘗試將lblAvailable保留在更新面板中,然后嘗試回發頁面。

原因可能是設置標簽中的文本未發布回頁面。

檢查該值是否正確到達了lblAvailable 如果是? 然后把

  <asp:UpdatePanel ID="UpdatePanel" runat="server">
        <ContentTemplate>
            <td runat="server" id="tdAvailableD" class="text-center" style ="font-size: 12px">
  <asp:Label ID="lblAvailable" runat="server" ForeColor="Red" Visible="true" Text=""></asp:Label></td>
        </ContentTemplate>
    </asp:UpdatePanel>

然后在.cs使用此

UpdatePanel.Update();

並從.cs刪除TextForeColor屬性,甚至可以提供不同的顏色

lblAvailable.ForeColor = System.Drawing.Color.Green;//or red when not in stock

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM