【发布时间】:2014-05-17 06:25:56
【问题描述】:
在调试我正在开发的网站时出现“黄屏死机”。错误消息是“值不能为空。参数名称:键。”我正在尝试将表单视图绑定到网格视图的选定索引。当我在 selectedindexchanged 方法中设置断点时,一切似乎都正确绑定,我可以查看我的 formview 的值,但是当我继续运行它时,我收到上述错误消息。我尝试将 datakeynames 属性添加到 formview 并得到相同的错误消息。我在这里和谷歌搜索并看到了一些结果,但没有一个似乎可以解决或与我的问题相关。
部分代码如下:
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>
我已经从 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
【问题讨论】:
-
我从您发布的代码中看不到任何明显的东西。可以添加 YSOD 的屏幕截图吗?是否有堆栈跟踪或任何可以帮助人们与您一起调试的东西?您是否有任何服务器端代码 formview 事件?
-
我添加了堆栈跟踪信息,除了我上面列出的关于从 formview 获取一些信息的内容之外,我没有任何与 formview 相关的服务器端代码。
-
有很多代码要阅读。你能缩小你的问题范围吗?
标签: c# asp.net gridview formview