2014-04-04 15 views
10

Otrzymuję "żółty ekran śmierci" podczas debugowania strony, nad którą pracuję. Komunikat o błędzie "wartość nie może być pusta. Nazwa parametru: klucz." Próbuję powiązać formview z wybranym indeksem gridview. Wszystko wydaje się wiązać poprawnie, gdy ustawiam punkty przerwania w mojej wybranej, zindeksowanej metodzie, mogę wyświetlać wartości mojego formularza, ale kiedy kontynuuję jego działanie, otrzymuję powyższy komunikat o błędzie. Próbowałem dodać właściwość datakeynames do formularza i uzyskać ten sam komunikat o błędzie. Szukałem tutaj i google i widzę pewne wyniki, ale żadne nie wydają się naprawiać ani odnosić się do mojego problemu."wartość nie może być pusta nazwa parametru: klucz"

Niektóre kod jest poniżej:

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> 

Dodałem ślad stosu z 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 
+0

Nie widzę niczego oczywistego z kodu, który napisałeś. Czy możesz dodać zrzut ekranu z YSOD? Czy istnieje ślad stosu lub coś, co pomogłoby ludziom w debugowaniu tego przy sobie? Czy masz jakiś kod po stronie serwera zdarzenia formview? – philreed

+0

Dodałem informacje śledzenia stosu i nie mam żadnego kodu po stronie serwera, który odnosi się do formularza innego niż to, co wymieniono powyżej, o uzyskiwaniu niektórych informacji z widoku formularza. – user3064073

+0

To dużo kodu do przeczytania. Czy możesz zawęzić swój problem? –

Odpowiedz

0

Odświeżyłem sqldatasource2 dla formview1, kiedy zrobiłem to pozwoliło mi odświeżyć schemat i klawisze dla formview1. Kiedy to zrobiłem, udało mi się przebudować widok formularza tak, aby wyglądał tak, jak tego potrzebowałem, po czym przestał działać. Zdecydowałem, że jest to z kontrolki aspnetspell: spelltextbox. Pobrałem najnowszą wersję i teraz działa.

+0

To nie powinna być akceptowana odpowiedź. Problem polega wyłącznie na tym, że Visual Studio robi coś złego i nie ma nic wspólnego z SqlDataSource lub innymi formantami Web Forms. – Richard

0

moja propozycja jest, aby przetestować swoje dane. Wydaje się, że próbujesz powiązać wartość null z formantem. Upewnij się, że w zestawie danych nie ma żadnych wartości null pochodzących z bazy danych. To powinien być twój pierwszy port zawinięcia.

+0

Sprawdziłem wszystkie zwracane dane i nie ma żadnych wartości pustych. – user3064073

17

Próbowałem wszystkiego, co powiedziałeś i nie działało. Jednak znalazłem obejście, które z jakiegoś powodu nie wiem, działało. Dodałem to do mojego pliku web.config:

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

I pracował dla mnie: D

+1

Po zmarnowaniu pół dnia, aby rozwiązać ten problem i w końcu udało się stąd .. Świetnie, dzięki człowieku .. !!! –

5

Spróbuj zamknąć Visual Studio i dostęp do tej samej strony. Powinno działać. Stawiłem też czoła temu samemu wyjątkowi. Jeśli widzisz wyjątek, wskazuje on stronę PageInspector of Visual studio, która powoduje problem. Nie wiem, dlaczego VS nie radzi sobie z ładowaniem aplikacji.

+0

wow ... Czas, aby dowiedzieć się, dlaczego tak się działo. Lol –

0

Właśnie miałem ten problem i dla mnie stało się to podczas dodawania LiteralControl od kod. Właściwość Text miała wartość NULL, a to zakłóca działanie PageInspector, dlatego ustaw go na string.Empty.

Poradziłbym, aby nie wyłączać funkcji, aby naprawić takie błędy, ponieważ gdy inny programista na innym komputerze odziedziczy kod, będzie miał dokładnie ten sam problem.

Powiązane problemy