none
DOCTYPE and Edit In Datasheet RRS feed

  • Question

  • I am having an issue where in IE6 when I try to edit a library in datasheet the browser freezes and crashes (I don't have this problem in IE7).  I have tracked down the issue to be related to having a DOCTYPE in my master page.  I'm using a custom master page based on the BlueBand master.  I don't want to just remove the DOCTYPE from the master as this will mess up all of my style.  How can I get Edit In Datasheet to play nice with having a DOCTYPE?  I've seen other people who have had this issue but haven't found a solution that works for me.
    Thanks.
    Friday, September 26, 2008 5:22 PM

Answers

  • Hello,

     

    This issue happens when you have the DOCTYPE in your master page with Strict mode. Removing DOCTYPE will mitigate this issue. This is a bug in IE 6 and the product group is looking into fixing it in future version of IE (IE 7 has resolved this issue).


    The root cause of this issue should be a infinite looping, which is related to Core.js located in “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033” for MOSS 2007 English version.

    Thanks! 

     

    Regards,

    Lionel

    Tuesday, September 30, 2008 8:08 AM

All replies

  • Hello,

     

    This issue happens when you have the DOCTYPE in your master page with Strict mode. Removing DOCTYPE will mitigate this issue. This is a bug in IE 6 and the product group is looking into fixing it in future version of IE (IE 7 has resolved this issue).


    The root cause of this issue should be a infinite looping, which is related to Core.js located in “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033” for MOSS 2007 English version.

    Thanks! 

     

    Regards,

    Lionel

    Tuesday, September 30, 2008 8:08 AM
  • Thank you this pulling the DOCTYPE has solved the datasheet view issue, but now my pages don't display webparts correctly when I am in web part edit mode.  I believe this is a height issue based on rendering in Quirks mode.  I know that the default master page renders without a doctype, but I can't figure out why that works but mine doesn't.  Any insight? 
    • Proposed as answer by Ducati_DC Thursday, December 11, 2008 7:09 PM
    Monday, October 6, 2008 3:07 PM
  • Removing the DOCTYPE isn't the cleanest solution to this, as a well-formed page needs a DOCTYPE.

    The best, cleanest solution to this that I have found is here: http://tomblog.insomniacminds.com/2008/07/23/sharepoint-branding-issues-edit-in-datasheet-view/

    Hopefully this will help someone save some time - I know it helped me.

    Cheers.
    Thursday, December 11, 2008 7:10 PM
  • Thank you, Thank you, Thank you.

    I've been struggling with this one for a while and this is the only post that I found to actually provide a fix and an explanation of what is happening.

    You can also override the function from Core.js in your custom master pages, that way you don't have to touch Core.js or remove the DocType.

    function GCComputeSizing(GCObject)
    {
     if (TestGCObject(GCObject))
     {
      var fBIDI=(document.documentElement.currentStyle.direction=="rtl");
      var lGCWindowWidth=document.documentElement.scrollWidth;
      var lGCWindowHeight=(document.documentElement.scrollHeight>document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.documentElement.scrollHeight;

      var lGCObjectOffsetLeft=0;
      var lGCObjectOffsetTop=0;
      if (fBIDI)
       {
       lGCObjectOffsetLeft=-180;
       lGCObjectOffsetTop=120;
       }
      else
       {
       lGCObjectOffsetLeft=32;
       lGCObjectOffsetTop=-2;
       }
      var lGCObjectWalker=GCObject.parentElement;
      while (lGCObjectWalker !=document.body)
      {
       lGCObjectOffsetLeft+=lGCObjectWalker.offsetLeft;
       lGCObjectOffsetTop+=lGCObjectWalker.offsetTop;
       lGCObjectWalker=lGCObjectWalker.offsetParent;
       if (fBIDI)
        if (lGCObjectWalker.offsetLeft > 0)
         break;
      }
      lGCObjectOffsetLeft+=GCObject.parentElement.offsetLeft;
      lGCObjectOffsetTop+=GCObject.parentElement.offsetTop;
      glGCObjectHeight=lGCWindowHeight - lGCObjectOffsetTop;
      if (glGCObjectHeight > lGCWindowHeight)
       glGCObjectHeight=lGCWindowHeight
      if (glGCObjectHeight < cGCMinimumHeight)f
       glGCObjectHeight=cGCMinimumHeight;
      if (fBIDI)
       {
       glGCObjectWidth=lGCWindowWidth+lGCObjectOffsetLeft;
       }
      else
       glGCObjectWidth=lGCWindowWidth - lGCObjectOffsetLeft;
      if (glGCObjectWidth > lGCWindowWidth)
        glGCObjectWidth=lGCWindowWidth;
      if (glGCObjectWidth < cGCMinimumWidth)
       glGCObjectWidth=cGCMinimumWidth;
     }
    }

    Wednesday, January 28, 2009 5:24 PM
  • This solution i.e.,
    var lGCWindowHeight=(document.documentElement.scrollHeight>document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.documentElement.scrollHeight;

    is working fine for IE7 but for IE6 its not working.. Please suggest..

    Thanks.
    Saturday, September 12, 2009 8:54 AM
  • Thanks Jonathan.. this really helped me solve the issue on which i was sitting for past 2 days... Thanks once again...
    Friday, October 30, 2009 12:39 AM