c# asp.net gridview formview

c# - "Valor no puede ser nombre de parámetro nulo: clave"



asp.net gridview (6)

Obtendré una "pantalla amarilla de la muerte" al depurar un sitio web en el que estoy trabajando. El mensaje de error es "el valor no puede ser nulo. Nombre del parámetro: clave". Estoy intentando vincular una vista de formulario al índice seleccionado de una vista en cuadrícula. Parece que todo se enlaza correctamente cuando establezco los puntos de interrupción en mi método de indexado seleccionado, puedo ver los valores de mi vista de formulario, pero cuando continúo ejecutándolo, obtengo el mensaje de error anterior. Intenté agregar una propiedad de nombres de datos a la vista de formulario y obtener el mismo mensaje de error. He buscado aquí y en google y veo algunos resultados, pero ninguno parece solucionar o relacionarse con mi problema.

Algunos códigos están a continuación:

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>

He agregado el rastro de la pila del 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


Intente cerrar Visual Studio y acceder a la misma página. Deberia de funcionar. También enfrenté la misma excepción. Si ve la excepción, apunta a PageInspector of Visual Studio que causa el problema. No estoy seguro de por qué VS está jugando con la carga de aplicaciones.


Mi sugerencia es probar tus datos. Parece que estás intentando vincular un valor nulo al control. Asegúrese de que no haya nulos en su DataSet que vuelven de la base de datos. Debería ser su primer puerto de escala.


Actualicé sqldatasource2 para formview1, cuando lo hice me permitió actualizar el esquema y las claves para formview1. Cuando lo hice funcionó, así que reconstruí la vista de formulario para que se viera como lo necesitaba, y luego dejó de funcionar de nuevo. Decidí que era del aspnetpell: control de cuadro de texto de hechizo. Descargué la última versión y ahora funciona.


Intenté todo lo que dijiste y no funcionó. Sin embargo, encontré una solución que, por alguna razón que no sé, funcionó. Agregué esto a mi archivo web.config:

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

Y funcionó para mí: D



Acabo de tener este problema y para mí sucedió cuando agregué un LiteralControl del código. La propiedad Text era nula y esto altera a PageInspector, así que simplemente configúralo como string.Empty.

Aconsejo no desactivar las funciones solo para corregir errores como este, porque cuando un desarrollador diferente en una máquina diferente herede tu código, tendrán exactamente el mismo problema.