Question: I'm using a short bit of C# code to create an `iFrame` with a pdf inside of it.

However, the iFrame comes up empty. 

```
 LiteralControl c= new  LiteralControl("<iframe id='embeddedFrame' name='embeddedFrame' runat=server src="+filePath+" width=400 height=400></iframe>");
 ph.Controls.Add(c);

```

Viewing the page source gives me this:

```
<iframe id="embeddedFrame" name="embeddedFrame" runat="server" src="C:\Users\Houseman\Desktop\WebApplication1\WebApplication1\Data\Untitled1.pdf" width="400" height="400"></iframe>

```

Which looks correct. I do indeed have that .pdf file in that location. There's no 404 error, it's just blank... 

What am I doing wrong, or how could I fix this?

---

I can access the file through my browser, except that I have to take out `localhost:8683` and replace it with `file:///`

---

I'm accessing the file with 

```
string PdfLocation = System.IO.Path.Combine(Server.MapPath("Data") ,pdfn);

```

Where `pdfn` is the filename of the upload +".pdf"

Answer: 
You need to give the newly selected row logical focus. After selecting the new item try replacing your `SetFocus` call with this:

```
        var selectedRow = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(dataGrid1.SelectedIndex);
        FocusManager.SetIsFocusScope(selectedRow, true);
        FocusManager.SetFocusedElement(selectedRow, selectedRow);

```
This PowerShell snippet worked for me:

```
$dataGrid = ...    
$dataGrid.add_GotKeyboardFocus({
    param($Sender,$EventArgs)
    if ($EventArgs.OldFocus -isnot [System.Windows.Controls.DataGridCell) {
        $row = $dataGrid.ItemContainerGenerator.ContainerFromIndex($dataGrid.SelectedIndex)
        $row.MoveFocus((New-Object System.Windows.Input.TraversalRequest("Next")))
    }
})

```