首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

后台如何改变客户端css的className呢

2012-02-06 
后台怎么改变客户端css的className呢大年初一,祝大家新年快乐,万事如意,我aspx页面的的代码如下,有四个标

后台怎么改变客户端css的className呢
大年初一,祝大家新年快乐,万事如意,
我aspx页面的的代码如下,有四个标题对应四个内容,只显示其中一个(初始设为显示content1),功能是:当点击一标题如 "发放记录 "(ID号为titel2)时,就显示,对应的(ID号为content2)DIV框,其它的div隐藏.CSS代码多我没列出(点击显示对应的DIV是没有问题的)。但我在content2里有个datagrid,要实现分页功能,问题就出来了,当显示content2时点下一页的时候,页面重新加载初始化了,就会把content1显示出来,而我想看的是content2的第二页内容.我想到的办法是在后台e.NewPageIndex时,把content2的className设置为显示(css里activecontent为显示,hiddencontent为隐藏)其它的DIV设为隐藏。那怎么在_PageIndexChanged事件里改变前台className呢???或者大家有别的方法吗??
<div   class= "searchmenu ">
    <ul   class= "title ">
    <li> <a   id= "title1 "   onclick   = "chang(1) "   href= "# "   class= "active "> 库存 </a> </li>
    <li> <a   id= "title2 "   onclick   = "chang(2) "   href= "# "> 发放记录 </a> </li>
    <li> <a   id= "title3 "   onclick   = "chang(3) "   href= "# "> 网点库存 </a> </li>
    <li> <a   id= "title4 "   onclick   = "chang(4) "   href= "# "> 出单记录 </a> </li>
                    </ul>
    <div   id= "content1 "   class= "activecontent ">
                                内容太多没例出1
    </div>
    <div   id= "content2 "   class= "hiddencontent ">
          <asp:DataGrid   ID= "dgShowInComeNote "   runat= "server "   AllowPaging= "True "   AutoGenerateColumns= "False "   OnPageIndexChanged= "dgShowInComeNote_PageIndexChanged "   PageSize= "18 ">
<PagerStyle   Font-Bold= "False "   Font-Italic= "False "   Font-Overline= "False "   Font-Strikeout= "False "   Font-Underline= "False "   HorizontalAlign= "Center "   />
      <Columns>
      <asp:BoundColumn   DataField= "icSource "   HeaderText= "来源 "> </asp:BoundColumn>
      <asp:BoundColumn   DataField= "insuType "   HeaderText= "类别 "> </asp:BoundColumn>
      <asp:BoundColumn   DataField= "icFromNum "   HeaderText= "起号 "> </asp:BoundColumn>
        <asp:BoundColumn   DataField= "icDate "   HeaderText= "接收日期 "> </asp:BoundColumn>
        </Columns>
</asp:DataGrid>
    </div>
    <div   id= "content3 "   class= "hiddencontent ">
                                内容太多没例出3
    </div>
    <div   id= "content4 "   class= "hiddencontent ">
                                内容太多没例出4
    </div>


[解决办法]
你的代码太多太乱,没有看全。给你写个例子自己理解一下:

bool SubStateChanged=true;

int ShowContentNum


{
get
{
if(ViewSate[ "showContentNum "]==null)
return 1;
else
return (int)ViewSate[ "showContentNum "];
}
set
{
ViewSate[ "showContentNum "]=value;
SubStateChanged=true;
}
}

//这里我按照你的设计。原本对于asp.net来说,可以通过控件的Visible使得控件根本不重新
//绑定内容(需要绑定前判断),也不用输出到客户端。
void OnSubStateChanged()
{
this.Content1.CssClass=ShowContentNum==1? "activecontent ": "hiddencontent ";
this.Content2.CssClass=ShowContentNum==2? "activecontent ": "hiddencontent ";
this.Content3.CssClass=ShowContentNum==3? "activecontent ": "hiddencontent ";
this.Content4.CssClass=ShowContentNum==4? "activecontent ": "hiddencontent ";
}

void page_load(object sender,EventArgument e)
{
......
if(SubStateChanged)
OnSubStateChanged();
}

void page_PreRender(object sender,EventArgument e)
{
.......
if(SubStateChanged)
OnSubStateChanged();
}
[解决办法]
少写了一句话,补上:

void OnSubStateChanged()
{
SubStateChanged=false;
this.Content1.CssClass=ShowContentNum==1? "activecontent ": "hiddencontent ";
this.Content2.CssClass=ShowContentNum==2? "activecontent ": "hiddencontent ";
this.Content3.CssClass=ShowContentNum==3? "activecontent ": "hiddencontent ";
this.Content4.CssClass=ShowContentNum==4? "activecontent ": "hiddencontent ";
}

热点排行