C# 添加GridView DataKeyNames值将提供Resources.ExceptionPolicyNotFound

C# 添加GridView DataKeyNames值将提供Resources.ExceptionPolicyNotFound,c#,gridview,C#,Gridview,我正在向GridView添加工具提示,遇到了一个有趣的错误。当我使用绑定字段填充工具提示时,一切正常。当它被隐藏时,工具提示是空白的,这是我所期望的,因为隐藏时数据不会被发送。为了解决这个问题,我使用DataKeyNames属性来保存数据。添加此项后,将导致Resources.ExceptionPolicyNotFound异常 以下是带有拒绝原因的网格视图: <asp:GridView ID="GrdSearchResult" runat="server" AutoGenerate

我正在向GridView添加工具提示,遇到了一个有趣的错误。当我使用绑定字段填充工具提示时,一切正常。当它被隐藏时,工具提示是空白的,这是我所期望的,因为隐藏时数据不会被发送。为了解决这个问题,我使用DataKeyNames属性来保存数据。添加此项后,将导致Resources.ExceptionPolicyNotFound异常

以下是带有拒绝原因的网格视图:

    <asp:GridView ID="GrdSearchResult" runat="server" AutoGenerateColumns="False" OnRowDataBound="GrdSearchResult_RowDataBound"
        Width="100%" AllowPaging="True" OnPageIndexChanging="GrdSearchResult_PageIndexChanging"
        EmptyDataText="No record found." PageSize="20" CssClass="GridStyle" PagerStyle-CssClass="PagerStyle" EmptyDataRowStyle-CssClass="EmptyStyle"
        DataKeyNames="RejectReason">
        <Columns>
            <asp:BoundField HeaderText="Reject Code" DataField="RejectCode"/>
            <asp:BoundField HeaderText="Claim #" DataField="ClaimNbr" />                           
            <asp:BoundField HeaderText="Member Medicaid #" DataField="MemberMedicaidNbr" />
            <asp:BoundField HeaderText="Member Name" DataField="MemberName" />
            <asp:BoundField HeaderText="Provider Name" DataField="ProviderName" />
            <asp:BoundField HeaderText="Check(s) Details" />
            <asp:BoundField HeaderText="Date of Service" DataFormatString="{0:MM-dd-yyyy}" DataField="ServiceRange" />
            <asp:BoundField HeaderText="Claims Link" />
            <asp:BoundField HeaderText="RejectReason" DataField="RejectReason" Visible="false" />
        </Columns>
    </asp:GridView>

我们的目标是将第一列的工具提示设置为最后第九列的值。

我仍然不确定是什么导致了错误,但我决定以不同的方式处理此问题。默认情况下,不是隐藏数据字段,而是在设置工具提示后将其隐藏

                    e.Row.Cells[0].ToolTip = e.Row.Cells[8].Text.ToString();
                    e.Row.Cells[8].Visible = false;
唯一的问题是将列标题也隐藏起来,但我在另一节中使用了相同的代码。现有代码使用

                    if (e.Row.Cells[0].Text != string.Empty)
为了只查看数据行而不查看标题行,我添加了

            else
            {
                e.Row.Cells[8].Visible = false;
            }
数据操作完成后

            else
            {
                e.Row.Cells[8].Visible = false;
            }