"Value ne peut pas être un nom de paramètre null: key"
Je suis un "jaune de l'écran de la mort" lors du débogage d'un site web, je travaille sur. Le message d'erreur est "la valeur ne peut pas être null. Nom du paramètre: la clé." Je suis en train de lier un formview à l'index sélectionné d'un gridview. Tout semble se lier correctement lorsque j'ai mis des points d'arrêt dans mon selectedindexchanged méthode, je peux afficher les valeurs de mon formview, mais quand je continue à courir, je reçois le message d'erreur ci-dessus. J'ai essayé d'ajouter un datakeynames propriété de la formview et obtenir le même message d'erreur. J'ai cherché ici et google et de voir des résultats, mais aucun ne semble corriger ou de le relier à mon problème.
Code est ci-dessous:
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" />
<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" />
<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") %>' />
First Name:
<asp:Label ID="FirstNameLabel" runat="server" Text='<%# Bind("FirstName") %>' />
DOB:
<asp:Label ID="DOBLabel" runat="server" Text='<%# Bind("DOB") %>' />
<br />
<br />
Phone Number:
<asp:Label ID="PhoneNumberLabel" runat="server"
Text='<%# Bind("PhoneNumber") %>' />
Chart Number:
<asp:Label ID="ChartNumberLabel" runat="server"
Text='<%# Bind("ChartNumber") %>' />
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>
J'ai ajouté la trace de la pile de la 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
source d'informationauteur user3064073
Vous devez vous connecter pour publier un commentaire.
J'ai essayé tout ce que vous avez dit et ça n'a pas fonctionné.
Cependant, j'ai trouvé une solution de contournement qui, pour une raison que je ne sais pas, travaillé.
J'ai ajouté à mon site web.fichier de configuration:
Et cela a fonctionné pour moi 😀
Cela peut être causé par browserlink dans Visual Studio activé. Désactiver:
http://www.asp.net/visual-studio/overview/2013/using-browser-link#disabling
Essayez de fermer Visual Studio et et accéder à la même page. Il devrait fonctionner. J'ai aussi été confrontés à la même exception. Si vous voyez l'exception des points à PageInspector de Visual studio à l'origine du problème. Je ne sais pas pourquoi VS est de jouer avec le chargement de l'application.
Ma suggestion est de tester vos données. Il semble que vous essayez de lier une valeur null pour le contrôle. Assurez-vous il n'y a pas de valeurs null dans votre jeu de données provenant de la base de données. Cela devrait être votre premier port d'escale.
J'ai actualisé sqldatasource2 pour formview1, quand je l'ai fait il m'a permis d'actualiser le schéma et les clés pour formview1. Quand je l'ai fait ça marche, donc j'ai reconstruit la vue de formulaire de regarder la façon dont j'avais besoin, puis il a cessé de travailler à nouveau. J'ai décidé qu'il était de la aspnetspell:spelltextbox de contrôle. J'ai téléchargé la dernière version et ça fonctionne maintenant.
J'ai juste eu ce problème et pour moi, c'est arrivé lors de l'ajout d'un LiteralControl de code derrière. Le Texte de la propriété a été nulle et cela bouleverse PageInspector, donc il suffit de le régler à la chaîne.Vide.
Je serais d'avis de faire de fonctionnalités hors juste pour corriger les erreurs de ce genre car quand un autre développeur sur une machine différente hérite votre code, ils auront exactement le même problème.
Juste Nettoyer et reconstruire la Solution a fonctionné pour moi 🙂