2015-11-19 48 views
0

我在设置服务器端和客户端的元素宽度时遇到问题。在客户端,css不会覆盖从服务器端应用的css。我需要做的就是在服务器端添加css到td,然后客户端删除旧的css并应用新的css。是否可以在客户端和服务器端设置td的宽度?

这里是我的代码

设计页面

<td id="tdlblOverRideText" runat="server"> 
     <asp:Label ID="lblOverRideText" Text="Overridden charges are denoted by green background" runat ="server" Visible ="false" BackColor="#efffff"></asp:Label>  
    </td> 

服务器端:

tdlblOverRideText.Attributes.Add( “类”, “OverRideText”);

客户方:

$("#tdlblOverRideText").removeClass("OverRideText"); 
    $("#tdlblOverRideText").addClass("OverRideTextHide"); 

CSS

td.OverRideText { 
    font-style:italic; 
    text-align:right !important; 
    padding-right:1%; 
} 
td.OverRideTextHide { 
    font-style:italic; 
    text-align:right; 
    padding-right:10%; 
} 

因为它是一个延迟加载,我不能使用

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "text", "jsmethod();", true); 

,因为这将呼吁第二次加载JS的方法,而不是为了第一个页面加载。

+0

难道你只是从页面加载的JavaScript调用jsmethod()? –

+0

那就是我提到的。我们的应用程序专为延迟加载而设计。第一次在page_Load上调用javascript方法,控制值在.JS文件中未定义。第二次它。我尝试了几乎所有东西 – user4895544

+0

你在懒惰负载中使用什么?无论如何是这样的:http://www.appelsiini.net/projects/lazyload? –

回答

0

//check from 10 to 10 seconds if you have you class somwhere on dom 
 
var mytick = setInterval(animationFunction, 1000) 
 

 

 
function animationFunction() { 
 
    console.log("tick"); 
 
    if ($(".OverRideText").length > 0) 
 
    { 
 
     $(".OverRideText").removeClass("OverRideText").addClass("OverRideTextHide"); 
 
     
 
     //here you can destroy the loop if you want 
 
     //clearTimeout(mytick) 
 
    } 
 
} 
 

 
var step=0; 
 
setInterval(function() { 
 
    step++; 
 
    console.log("lazy load"); 
 
    $('#wrapper').append('<div class="OverRideText">Text ' + step + '</div>'); 
 
}, 1000);
.OverRideText { 
 
    font-style:italic; 
 
    text-align:right !important; 
 
    padding-right:10%; 
 
} 
 

 
.OverRideTextHide { 
 
    font-style:italic; 
 
    text-align:right; 
 
    padding-right:50%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 
<div id="wrapper"> 
 
    <div class="OverRideText">Text 0</div> 
 
    </div>

我已经使用javascript间隔执行,以检查是否具有元素类= 'OverRideText' 可以找到;为什么不ID?因为插入延迟加载相同的id在html中不正确。另一个延迟加载技巧(模拟延迟加载)是以10秒为间隔插入该类的元素。

现在回到主要问题,你最懒惰的负载用ajax执行,ajax得到成功事件,成功事件你可以执行你喜欢的动画。

相关问题