PSPCommunity.org ورود | ثبت نام | كمك
استفاده از شرطي هاي(IF) تو در تو در ستون محاسبه اي در يك ليست
گاهي نياز هست با توجه به اطلاعاتي كه در  يكي از ستون هاي يك ليست وجود دارد ، ستون ديگر موجود در اين ليست به شكل اتوماتيك پر شود .  
در اين موارد ما از ستون محاسبه اي استفاده مي كنيم. در ستون هاي محاسبه اي مي توانيم از شرطي هاي تو در تو استفاده كنيم كه همان If, else if   است.
در اينجا با يك مثال استفاده از اين دستور را توضيح مي دهيم.
فرض كنيد ليستي وجود دارد كه در يكي از ستون هاي آن با نام "Mark" نمرات دانشجويان وارد مي شود . حال مي خواهيم در ستون ديگري با نام "MarkLevel" فيلد محاسبه اي داشته باشيم كه به اين صورت عمل كند. اگر نمره بالاتر و مساوي 90 بود درجه آزمون "A" ، اگز نمره بالاتر و مساوي 80 بود "B"، اگر بالاتر و مساوي 70 بود "C" در غير اين صورت "D" شود.
در ستون محاسبه اي فرمول زير را وارد مي كنيم:
=IF(Mark>89;"A";IF(Mark>79;"B";IF(Mark>69;"C";"D")))
رفع مشکل جاوا اسکریپت 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>