[英]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
刪除Text
和ForeColor
屬性,甚至可以提供不同的顏色
lblAvailable.ForeColor = System.Drawing.Color.Green;//or red when not in stock
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.