Flashing a Dell Latitude Laptop’s BIOS running Vista

I’d tried several times to update the BIOS on my Dell Latitude D820 Laptop running Vista, but I always got errors.  Since a new version of the BIOS (A08) had been released, I decided that it was time to get to the bottom of things.

I found a post by E-Gizmo over on the Dell Community Forums that solved my problem.  Here’s what was happening and how the fix works.

When I ran the new BIOS install EXE, I would get the error below.image

No big deal: I just right clicked on the EXE and chose ‘Run as administrator’.  Nope, still an error.  I didn’t capture my specific error, but the one that I snipped out of the discussion referenced above looks almost identical (different laptop model and different BIOS version, but an identical error):

The discussion thread recommended two main solutions:

  1. Create a bootable DOS USB drive or diskette and install from there
  2. Use Regedit to remove the key HKEY_LOCAL_MACHINE -> SYSTEM ->ControlSet001 -> Services -> DELLBIOS

The bootable disk idea seemed like a pain and not really the right way to go for the future, so I tried the Regedit option.  Here are the instructions:

    • Click on start then run and type "regedit" (without the quotes) in the command line and press enter.
    • Expand and Look for: HKEY_LOCAL_MACHINE -> SYSTEM ->ControlSet001 -> Services -> DELLBIOS
    • Go to File/Export and save the key in an REG file.  (I always try to remember to do this.  If your deletion causes problems, you can always load the REG file back into the Registry by double clicking it.)
    • Delete DELLBIOS folder
    • Restart the system
    • Re-flash BIOS

This did the trick.  My guess is that one of my previous attempts at flashing the BIOS had left this key in the Registry for some reason.

Technorati tags: , ,

DVWPs “Fall Off the Page”

This post is really more of a plea (assuming that anyone is out there reading this).  Tell me that I’m not losing it.
I have built an "application" in a SharePoint site.  (This application manages the sporting event tickets that my client has available to dole out to various executives to use with clients.)  The application consists of about 30 .aspx pages, most of which have Data Form Web Parts (DFWPs or DVWPs) on them either to display contents of list items or to create or edit list items.
Since we have moved this site to the production environment, we have seen multiple instances where the DVWPs have simple disappeared from various pages.  We usually notice this when someone is looking at a page in the browser and doesn’t see what they expect.  When we open the page in SharePoint Designer, the Web Part(s) have cleanly disappeared form the page’s code.  When I say cleanly, I mean that only the code for the DVWP(s) is missing; all other page code is intact and functional.
We’ve checked the date/time stamp and author on the page(s) when this has happened, and we all agree that the pages have changed since the last edit.  (I did think at one point that I must be doing something since this was so strange.)
As an example, here is a DVWP that I had to put back into a page this morning.  It is a simple one that we use on most pages to just show one item from a list that contains the site image and title.  Because it is reused frequently, I am using <XslLink> to point to an external XSL source:
<WebPartPages:DataFormWebPart runat="server" SuppressWebPartChrome="False" Description="" PartImageSmall="" DataSourceID="" MissingAssembly="Cannot import this Web Part." FrameType="None" ConnectionID="00000000-0000-0000-0000-000000000000" DetailLink="" ExportControlledProperties="True" IsVisible="True" AllowRemove="True" AllowEdit="True" ID="g_395fc560_05c9_4995_a21a_0b00cf0d90d5" Dir="Default" FrameState="Normal" ViewContentTypeId="" AllowConnect="True" PageSize="-1" AllowMinimize="True" IsIncludedFilter="" ShowWithSampleData="False" ChromeType="None" HelpMode="Modeless" ExportMode="All" ViewFlag="0" Title="TMS Site Parameters" HelpLink="" AllowHide="True" AllowZoneChange="True" PartOrder="1" UseSQLDataSourcePaging="True" PartImageLarge="" IsIncluded="True" NoDefaultStyle="TRUE" __MarkupType="vsattributemarkup" __WebPartId="{395FC560-05C9-4995-A21A-0B00CF0D90D5}" __AllowXSLTEditing="true" WebPart="true" Height="" Width=""><XslLink>
<SharePoint:SPDataSource runat="server" DataSourceMode="List" SelectCommand="&lt;View&gt;&lt;/View&gt;" UseInternalName="True" ID="dataformwebpart3"><SelectParameters><WebPartPages:DataFormParameter ParameterKey="ListName" PropertyName="ParameterValues" DefaultValue="TMS Site Parameters" Name="ListName"></WebPartPages:DataFormParameter><WebPartPages:DataFormParameter ParameterKey="WebURL" PropertyName="ParameterValues" DefaultValue="/sites/GMTMS/" Name="WebURL"></WebPartPages:DataFormParameter>
<ParameterBinding Name="dvt_apos" Location="Postback;Connection"/>
 <ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/>
 <ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/>
 <ParameterBinding Name="WebURL" Location="None" DefaultValue="/sites/GMTMS/"/>
 <ParameterBinding Name="URL" Location="ServerVariable(URL)" DefaultValue=""/></ParameterBindings>
<DataFields>@Title,Site Title;@Site_x0020_Logo,Site Logo;@Site_x0020_Relative_x0020_URL,Site Relative URL;@ID,ID;@ContentType,Content Type;@Modified,Modified;@Created,Created;@Author,Created By;@Editor,Modified By;@_UIVersionString,Version;@Attachments,Attachments;@File_x0020_Type,File Type;@FileLeafRef,Name (for use in forms);@FileDirRef,Path;@FSObjType,Item Type;@_HasCopyDestinations,Has Copy Destinations;@_CopySource,Copy Source;@ContentTypeId,Content Type ID;@_ModerationStatus,Approval Status;@_UIVersion,UI Version;@Created_x0020_Date,Created;@FileRef,URL Path;</DataFields>
This has happened with different DVWPs on various pages.  When we’ve seen this, I’ve quickly fixed it using code I’ve got stashed elsewhere because this site is one that is already in use.
Anyone out there have any ideas?

Working with Large Lists in Office SharePoint Server 2007

I had a scare last Friday when I thought that some pages in an application that I had already deployed to a production SharePoint site were failing due to a large number (3300+) of items in a list.  Turns out that it wasn’t the problem, but it’s worth understanding that the party line says that there shouldn’t be more than 2000 items in a list container.  (By container, we mean the root of the list or any folders contained within it.)
Once you’ve exceeded the 2000 item limit, you may see this message on the list settings page (preceeded by an ominous red exclamation point):
As is frequently the case in MOSS, the link only takes you to the home page of help, and I couldn’t find anything inside help that gives more detail (though it might be there somewhere).
The white paper titled "Working with Large Lists in Office SharePoint Server 2007" I found on the Microsoft SharePoint Products and Technologies Team Blog gives a lot of detail about how to think about all of this.

Get a People Picker’s Current Value on a Form

There’s a nice article over at the SharePoint Designer Team Blog about how to manipulate a List Form Field (AKA Data Form Field) using Javascript.  It gives some great methods to accomplish this, but if you’d like to get the current value of a People Picker on a form (for validation purposes, most likely), the info isn’t there to do so reliably.  I had to do this today, so I wanted to post what I came up with. As usual when I post these things, I’ve left in the alerts that I used for debugging in case it helps you.

// Find a People Picker's value using its identifier (ff1, ff2, etc.)to find it in the page
function getPickerInputElement(identifier) {
  var tags = document.getElementsByTagName('DIV');
  for (var i=0; i < tags.length; i++) {
   var tempString = tags[i].id;
   //alert('tags[' + i + '].id = ' + tempString);
   if ((tempString.indexOf(identifier) > 0) && (tempString.indexOf('UserField_upLevelDiv') > 0)){
    //alert('HIT for ' + identifier + ' id=' + tags[i].id + ' value=' + tags[i].value);
    var innerSpans = tags[i].getElementsByTagName("SPAN");
    for(var j=0; j < innerSpans.length; j++) {
     //alert('innerSpans[' + j + '].id = ' + innerSpans[j].id);
     if(innerSpans[j].id == 'content') {
      //alert('HIT for ' + identifier + ' id=' + innerSpans[j].id + ' innerHTML=' + innerSpans[j].innerHTML);
      return innerSpans[j].innerHTML;
  return null;

Sorting by Number in DVWPs

If you set up a sort in a DVWP that has an aggregate Data Source, you’ll need to use the <xsl:sort> tag.  If you want to sort by a list column that is numeric, the tag:
<xsl:sort select=”@JobFamilyRank” order=”ascending”/>
will sort your data like: 1, 10, 11, 12, 2, 20, 21, 3…  That is, SharePoint will treat your column as if it contains left justified text.
Be sure to add the data-type parameter:
<xsl:sort select=”@JobFamilyRank” order=”ascending” data-type=”number”/>
and then the sort will work as you wanted: 1, 2, 3, 10, 11, 12, 20, 21,…