PSPCommunity.org ورود | ثبت نام | كمك
رفع مشکل جاوا اسکریپت Expand در DataView ها

 

زمانی که از Dataview در یک صفحه استفاده می کنیم و این data view را بر اساس فیلد خاصی گروه بندی می کنیم.و گروه ها را به حالت بسته یا collapse نمایش می دهیم. یا زمانی که یک لیست را که بر اساس فیلد خاصی گروه بندی کرده ایم به XSL تبدیل می کنیم (Convert to XSL) در مرورگرهایی مانند فایر فاکس با کلیک بر" + " کنار هر گروه نمی توان آن گروه را باز یا Expand کرد.

برای حل این مشکل در صفحه ای که Dataview استفاده کرده ایم، جاوا اسکریپت زیر را اضافه میکنیم :(لینک جاوااسکریپت)

<script type="text/javascript">

function ExpGroupBy(formObj)

{

  if ((browseris.w3c) && (!browseris.ie)) {

        document.all=document.getElementsByTagName("*");

  }

  docElts=document.all;

  numElts=docElts.length;

  images=formObj.getElementsByTagName("IMG");

  img=images[0];

  srcPath=img.src;

  index=srcPath.lastIndexOf("/");

  imgName=srcPath.slice(index+1);

  if (imgName=='plus.gif')

  {

        fOpen=true;

        displayStr="";

        img.src='/_layouts/images/minus.gif';

  }

  else

  {

        fOpen=false;

        displayStr="none";

        img.src='/_layouts/images/plus.gif';

  }

  oldName=img.name;

  img.name=img.alt;

  img.alt=oldName;

  spanNode=img;

  while(spanNode !=null)

  {

        spanNode=spanNode.parentNode;

        if (spanNode !=null &&

              spanNode.id !=null &&

              spanNode.id.length > 5 &&

              spanNode.id.substr(0, 5)=="group")

              break;

  }

  parentNode=spanNode;

  while(parentNode !=null)

  {

        parentNode=parentNode.parentNode;

        if (parentNode !=null &&

              parentNode.tagName=="TABLE")

              break;

  }

  lastNode=null;

  if (parentNode !=null)

  {

        lastNode=parentNode.lastChild;

        if (lastNode !=null && lastNode.tagName=="TBODY")

              lastNode=lastNode.lastChild;

        if (lastNode !=null && lastNode.tagName=="TR" && lastNode.lastChild !=null)

              lastNode=lastNode.lastChild;

  }

  for(var i=0;i<numElts;i++)

  {

        var childObj=docEltsIdea;

        if (childObj==spanNode)

              break;

  }

  ID=spanNode.id.slice(5);

  for(var j=i+1; j<numElts; j++)

  {

        var childObj=docElts[j];

        if (childObj.id.length > 5 &&

              childObj.id.substr(0, 5)=="group")

        {

              curID=childObj.id.slice(5);

              if (curID <=ID)

                    return;

        }

        parentNode=childObj;

        while(parentNode !=null)

        {

              parentNode=parentNode.parentElement;

              if (parentNode==spanNode)

                    break;

        }

        if (parentNode==spanNode)

              continue;

        if (childObj !=img &&

              childObj.tagName=="IMG" &&

              childObj.src &&

              childObj.src.slice(childObj.src.length - 25)=='/_layouts/images/plus.gif')

        {

              childObj.src='/_layouts/images/minus.gif';

              oldName=childObj.name;

              childObj.name=childObj.alt;

              childObj.alt=oldName;

        }

        if (childObj.tagName==spanNode.tagName &&

              childObj.id !="footer")

        {

              childObj.style.display=displayStr;

        }

        if ((childObj.tagName=="TABLE" && lastNode==null) || childObj==lastNode)

              break;

  }

}

//-->

</script>

Posted: Thursday, October 01, 2009 10:39 PM توسط leila sharifi

نظرات

بدون نظر

نظرات افراد ناشناس غير فعال مي باشد