2017-09-01 56 views
1

我有一个程序显示了两种类型的价格。如果用户注册,他/她将看到正常价格和折扣;如果用户未注册,他/她将只看到正常价格。所以我想在这种情况下隐藏打折的。如何隐藏/显示在ASP.NET中动态创建的HTML元素

string resumen = "<div id='coliz'>"; 

     resumen += "<img src='img/" + p.getNombre().ToLower().Replace(" ", "_") + "_" + p.getColor().ToLower().Replace(" ", "_") + ".png' alt=''/>" + 
     "<div class='presupuesto'>" + 
     "<div id=pvp runat='server'><h2>PVP</h2><h2 class='precio' id='precio' data-val='" + p.getPrecio() + "'>" + String.Format("{0:C}", p.getPrecio()) + "</h2></div>" + 
     "<div id=pvd runat='server'><h2>PVD</h2><h2 class='precio' id='preciopvd' data-val='" + p.getPrecio() + "'>" + String.Format("{0:C}", p.getPrecio()) + "</h2></div>" + 
     "<ul class='caracteristicas'>"; 

我从数据库中动态地确定的价格创建HTML内容

<div id="contenido"> 
    <div class="clr"></div> 
    <%=_resumen %> 
</div> 

我的主要想法是做一个数据库查询并获得折扣的值,然后在功能作用:

_resumen = setResumen(); 
_custom = setCustomization(); 
descuento = db.isReseller(AppleCTO.CodigoCliente); 
HiddenDescuento.Value = descuento.ToString(); 

此代码是上在Page_Load

我的问题是:我不能或者我不知道如何控制这些在Page_Load中的C#之后动态创建的元素。或者,也许我可以通过HiddenField传递日期并使用jQuery执行操作。

我试过jQuery

var descuento = $('#HiddenDescuento').val(); 
// VISIBILIDAD DEL PVD 
if (descuento == 0) { 
    $("#preciopvd").hide() 
} 
// VISIBILIDAD DEL PVD 

在先进的感谢,我在寻找不同的解决方案!

回答

2

因为我不知道程序的完整结构,所以我可以提出如下的建议。
创建HTML块,并使其隐藏像style='display:none;'

使用jQuery
隐藏的,而不是

if (descuento == 0) { 
    $("#preciopvd").hide() 
} 

利用这一点,

if (descuento == 0) { 
    $("#preciopvd").css("display","none"); 
} 

,并显示出,

if (descuento == 0) { 
    $("#preciopvd").css("display","block"); 
} 

快乐编码!

+0

最后,我用一个不太理想的解决方案解决了这个问题。我只是将两个不同函数中从DB创建内容的功能分开,每个函数的调用取决于注册用户的查询结果!感谢您的编辑和回复 –