我有一个javascript,通过这个javascript我可以动态地改变列表的css类。
我的列表。
<div class="BreadCrumbDiv">
<ul id="breadcrumbs-two">
<li><a href="#" onclick="changeClass(a1);" class="current1" id="a1">Step1
and user</a></li>
<li><a href="#" onclick="changeClass('a1');" id="a2">Step2</a></li>
<li><a href="#" onclick="changeClass('a1');" id="a3">Step3</a></li>
<li><a href="#" onclick="changeClass('a1');" id="a4">Step4</a></li>
</ul>
</div>
Java脚本。
function changeClass(elementid) {
var lis = document.getElementById(elementid);
lis.className = "current";
lis.className = "current1";
}
现在,我在我的按钮中调用了这样的javascript。
<asp:button id="btnNextODCDetails" runat="server" text="Next" cssclass="Button" onclientclick="changeClass('a2');"/>
但是改了css样式后,一旦回帖就不能用了。我不想使用更新面板。请有人帮助我。
感谢提前Gulrej
当你回传数据时,控制树将从aspx标记中重新创建,所以无论你在客户端对html元素做了什么修改,都会丢失。
当页面完全发布并再次渲染时,您将失去所有客户端代码(JS)的变化。
如果你仍然需要,那么就使用隐藏字段或其他东西将信息持久化,并在页面加载时检查相同的信息,然后在客户端设置它。
你可以使用以下代码来实现这个客户端
jQuery。
$(document).ready(function(){ // your checking});
jQuery: JavaScript: DOMContentLoaded
<script>
document.addEventListener("DOMContentLoaded", function(event) {
console.log("DOM fully loaded and parsed");
});
</script>
IE。
object.addEventListener("DOMContentLoaded", handler, useCapture) //IE model
我知道答案了 我修改了一下我的脚本。我在点击按钮事件时调用了这个脚本。
string script = " $(document).ready(function () { $('#breadcrumbs-two li #a2').addClass('current'); $('#breadcrumbs-two li #a2').removeClass('current'); $('#breadcrumbs-two li #a2').addClass('current1'); });";
ClientScript.RegisterClientScriptBlock(this.GetType(), "function", script, true);
Gulrej
在客户端使用这段代码,就在Page_Load之后:其实对我来说是有效的。
ScriptManager.RegisterStartupScript(Me.Page, GetType(Page), String.Format("StartupScript"), "<script type=""text/javascript""> GetAttributeName(); </script>", False)