Domanda

I am getting a "yellow screen of death" when debugging a website I'm working on. The error message is "value cannot be null. Parameter name: key." I'm trying to bind a formview to the selected index of a gridview. Everything appears to bind correctly when I set breakpoints in my selectedindexchanged method, I can view values of my formview, but when I continue running it, I get the above error message. I've tried adding a datakeynames property to the formview and get the same error message. I've searched here and google and see some results, but none that seem to fix or relate to my issue.

Some code is below:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    lblMessage.Text = "";
    cbCalled.Visible = true;
    cbError.Visible = true;
    cbVerbal.Visible = true;
    btnSubmit.Visible = true;
    FormView1.Visible = true;
    FormView1.DataBind();
    FormView fv1 = FormView1;
    Label PathCountLabel = (Label)fv1.FindControl("pathcountLabel");
    TextBox PathResult = (TextBox)fv1.FindControl("PathResultLabel");
    if ((PathCountLabel.Text != "1 of 1 biopsies") && (PathCountLabel.Text != "Only 1 Pathology Ordered"))
    {
        PathResult.BackColor = ColorTranslator.FromHtml("#FFFFAA");
    }
}

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        Visible="False" DataKeyNames="PatientID" DataSourceID="SqlDataSource1" 
        onselectedindexchanged="GridView1_SelectedIndexChanged" AllowSorting="True" onsorting="GridView1_Sorting">
    <Columns>
        <asp:CommandField ShowSelectButton="True" />
        <asp:BoundField DataField="PatientID" HeaderText="Patient Id" SortExpression="PatientID" />
        <asp:BoundField DataField="LastName" HeaderText="Last Name" 
            SortExpression="LastName" />
        <asp:BoundField DataField="FirstName" HeaderText="First Name" 
            SortExpression="FirstName" />
        <asp:BoundField DataField="PathCount" HeaderText="Path Count" 
            SortExpression="PathCount" />
        <asp:BoundField DataField="DateOfService" DataFormatString="{0:d}" 
            HeaderText="Date of Service" SortExpression="DateOfService" />
    </Columns>
</asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:PathologyConnectionString %>" 
        SelectCommand="SELECT * FROM [PatientDB]">
    </asp:SqlDataSource>
<br />
</div>
<div id="rightCol">
<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource2" 
    Width="708px">
    <EditItemTemplate>
        LastName:
        <asp:TextBox ID="LastNameTextBox" runat="server" 
            Text='<%# Bind("LastName") %>' />
        <br />
        FirstName:
        <asp:TextBox ID="FirstNameTextBox" runat="server" 
            Text='<%# Bind("FirstName") %>' />
        <br />
        DOB:
        <asp:TextBox ID="DOBTextBox" runat="server" 
            Text='<%# Bind("DOB") %>' />
        <br />
        PhoneNumber:
        <asp:TextBox ID="PhoneNumberTextBox" runat="server" 
            Text='<%# Bind("PhoneNumber") %>' />
        <br />
        ChartNumber:
        <asp:TextBox ID="ChartNumberTextBox" runat="server" 
            Text='<%# Bind("ChartNumber") %>' />
        <br />
        AccountNumber:
        <asp:TextBox ID="AccountNumberTextBox" runat="server" 
            Text='<%# Bind("AccountNumber") %>' />
        <br />
        PathResult:
        <asp:TextBox ID="PathResultTextBox" runat="server" 
            Text='<%# Bind("PathResult") %>' />
        <br />
        PreviousVisitNote:
        <asp:TextBox ID="PreviousVisitNoteTextBox" runat="server" 
            Text='<%# Bind("PreviousVisitNote") %>' />
        <br />
        PathSlipNote:
        <asp:TextBox ID="PathSlipNoteTextBox" runat="server" 
            Text='<%# Bind("PathSlipNote") %>' />
        <br />
        PathSlipCheckboxes:
        <asp:TextBox ID="PathSlipCheckboxesTextBox" runat="server" 
            Text='<%# Bind("PathSlipCheckboxes") %>' />
        <br />
        <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" 
            CommandName="Update" Text="Update" />
        &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" 
            CausesValidation="False" CommandName="Cancel" Text="Cancel" />
    </EditItemTemplate>
    <InsertItemTemplate>
        LastName:
        <asp:TextBox ID="LastNameTextBox" runat="server" 
            Text='<%# Bind("LastName") %>' />
        <br />
        FirstName:
        <asp:TextBox ID="FirstNameTextBox" runat="server" 
            Text='<%# Bind("FirstName") %>' />
        <br />
        DOB:
        <asp:TextBox ID="DOBTextBox" runat="server" 
            Text='<%# Bind("DOB") %>' />
        <br />
        PhoneNumber:
        <asp:TextBox ID="PhoneNumberTextBox" runat="server" 
            Text='<%# Bind("PhoneNumber") %>' />
        <br />
        ChartNumber:
        <asp:TextBox ID="ChartNumberTextBox" runat="server" 
            Text='<%# Bind("ChartNumber") %>' />
        <br />
        AccountNumber:
        <asp:TextBox ID="AccountNumberTextBox" runat="server" 
            Text='<%# Bind("AccountNumber") %>' />
        <br />
        PathResult:
        <asp:TextBox ID="PathResultTextBox" runat="server" 
            Text='<%# Bind("PathResult") %>' />
        <br />
        PreviousVisitNote:
        <asp:TextBox ID="PreviousVisitNoteTextBox" runat="server" 
            Text='<%# Bind("PreviousVisitNote") %>' />
        <br />
        PathSlipNote:
        <asp:TextBox ID="PathSlipNoteTextBox" runat="server" 
            Text='<%# Bind("PathSlipNote") %>' />
        <br />
        PathSlipCheckboxes:
        <asp:TextBox ID="PathSlipCheckboxesTextBox" runat="server" 
            Text='<%# Bind("PathSlipCheckboxes") %>' />
        <br />
        <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" 
            CommandName="Insert" Text="Insert" />
        &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" 
            CausesValidation="False" CommandName="Cancel" Text="Cancel" />
    </InsertItemTemplate>
    <ItemTemplate>
        Last Name:
        <asp:Label ID="LastNameLabel" runat="server" Text='<%# Bind("LastName") %>' />
        &nbsp;&nbsp;&nbsp;&nbsp; First Name:
        <asp:Label ID="FirstNameLabel" runat="server" Text='<%# Bind("FirstName") %>' />
        &nbsp;&nbsp;&nbsp;&nbsp; DOB:
        <asp:Label ID="DOBLabel" runat="server" Text='<%# Bind("DOB") %>' />
        &nbsp;&nbsp;
        <br />
        <br />
        Phone Number:
        <asp:Label ID="PhoneNumberLabel" runat="server" 
            Text='<%# Bind("PhoneNumber") %>' />
        &nbsp;&nbsp;&nbsp;&nbsp; Chart Number:
        <asp:Label ID="ChartNumberLabel" runat="server" 
            Text='<%# Bind("ChartNumber") %>' />
        &nbsp;&nbsp;&nbsp; Account Number:
        <asp:Label ID="AccountNumberLabel" runat="server" 
            Text='<%# Bind("AccountNumber") %>' />
        <br />
        <br />
        Biopsy Location:
        <asp:Label ID="BiopsyLocationLabel" runat="server" Text='<%# Bind("BiopsyArea") %>'></asp:Label>
        <br />
        <br />
        Path Result:
        <br />
                    <asp:TextBox ID="PathResultLabel" runat="server" 
            Text='<%# Bind("PathResult") %>' ReadOnly="True" TextMode="MultiLine" Width="600" Height="250" />

        <br />
        <br />
        Previous Visit Note:<br />
        <asp:TextBox ID="PreviousVisitNoteLabel" runat="server" 
            Text='<%# Bind("PreviousVisitNote") %>' ReadOnly="True" TextMode="MultiLine" Width="600" Height="250" />
        <br />
        <br />
        Pathology Lab Note:<br />
        <asp:TextBox ID="txtPathNote" runat="server" 
            Text='<%# Bind("PathNote") %>' ReadOnly="True" TextMode="MultiLine" Width="600" Height="150" />
        <br />
        <br />
        Note to DA/DT:<br />
        <asp:TextBox ID="txtDADTNote" runat="server" 
            Text='<%# Bind("DADTNote") %>' ReadOnly="True" TextMode="MultiLine" Width="600" Height="150" />
        <br />
        <br />
        Path Slip Note:<br />
        <asp:Label ID="PathSlipNoteLabel" runat="server" 
            Text='<%# Bind("PathSlipNote") %>' />
        <br />
        <br />
        Path Slip Checkboxes:
        <br />
        <asp:Label ID="PathSlipCheckboxesLabel" runat="server" 
            Text='<%# Bind("PathSlipCheckboxes") %>' />
        <br />
        <br />
        Patient Message:<br />
        <ASPNetSpell:SpellTextBox ID="txtPatientMessage" runat="server" TextMode="MultiLine" 
    DictionaryLanguage="English (International), English (Medical)" Height="88px" 
    Width="597px" Text='<%# Bind("PatientMessage") %>' onKeyPress="return macro(event);"></ASPNetSpell:SpellTextBox>
    <br />
    <asp:Label ID="pathcountLabel" runat="server" Text = '<%# Bind("PathCount") %>' Visible="false"></asp:Label>
    </ItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:PathologyConnectionString %>" 

    SelectCommand="SELECT [LastName], [FirstName], [DOB], [PhoneNumber], [ChartNumber], [AccountNumber], [PathResult], [PreviousVisitNote], [PathSlipNote], [PathSlipCheckboxes], [PathNote], [DADTNote], [BiopsyArea], [PatientMessage], [PathCount] FROM [PatientDB] WHERE ([PatientID] = @PatientID)">
    <SelectParameters>
        <asp:ControlParameter ControlID="GridView1" Name="PatientID" 
            PropertyName="SelectedValue" Type="Int32" />
    </SelectParameters>
</asp:SqlDataSource>

I've added the stack trace from the YSOD

Server Error in '/' Application.
--------------------------------------------------------------------------------


Value cannot be null.
Parameter name: key 
  Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

 Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: key

Source Error: 


 An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 



[ArgumentNullException: Value cannot be null.
Parameter name: key]
   System.Collections.Generic.Dictionary`2.FindEntry(TKey key) +10627293
   System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value) +12
   Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.GetLiteralTraceData(LiteralControl literal, TraceData& data) +97
   Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.GetTraceData(Object renderedObject) +421
   Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.EndRendering(TextWriter writer, Object renderedObject) +79
   System.Web.UI.RenderTraceListenerList.EndRendering(TextWriter writer, Object renderedObject) +58
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +142
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   ASPNetSpell.SpellTextBox.Render(HtmlTextWriter writer) +6035
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.WebControls.TableCell.RenderContents(HtmlTextWriter writer) +57
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +10
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.WebControls.FormViewRow.Render(HtmlTextWriter writer) +38
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.WebControls.Table.RenderContents(HtmlTextWriter writer) +211
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +10
   System.Web.UI.WebControls.FormView.Render(HtmlTextWriter writer) +86
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +102
   System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +53
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1386




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18446  
È stato utile?

Soluzione 5

I refreshed sqldatasource2 for formview1, when I did it allowed me to refresh the schema and keys for formview1. When I did that it worked, so I rebuilt the form view to look the way I needed it to, then it stopped working again. I determined it was from the aspnetspell:spelltextbox control. I downloaded the latest version and it now works.

Altri suggerimenti

I tried everything you said and it didnt work. However, I found a workaround that, for some reason I dont know, worked. I added this to my web.config file:

 <add key="PageInspector:ServerCodeMappingSupport" value="Disabled" />

And it worked for me :D

This can be caused by browserlink in Visual Studio being enabled. Disable it:

http://www.asp.net/visual-studio/overview/2013/using-browser-link#disabling

Try closing the Visual Studio and and access the same page. It should work. I also faced the same exception. If you see the exception it points to PageInspector of Visual studio which causing the issue. Not sure why VS is messing with application loading.

My suggestion is to test your data. It would seem that you are trying to bind a null value to the control. Make sure there are no nulls in your DataSet coming back from the database. It should be your first port of call.

I've just had this issue and for me it happened when adding a LiteralControl from code behind. The Text property was null and this upsets PageInspector, so just set it to string.Empty.

I'd advice against turning features off just to fix errors like this because when a different developer on a different machine inherits your code they will have the exact same issue.

Just Clean and rebuild the Solution worked for me :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top