asp.net - OnRowUpdating事件中GridView的NewValues和OldValues为空

标签 asp.net gridview asp.net-3.5

我有下面的 GridView。我在后面的代码中绑定(bind)到自定义数据源。它很好地进入“OnRowUpdating”事件,但没有 NewValues 或 OldValues。关于如何获取这些值有什么建议吗?

<asp:GridView   ID="gv_Personnel" 
                        runat="server" 
                        OnRowDataBound="gv_Personnel_DataBind" 
                        OnRowCancelingEdit="gv_Personnel_CancelEdit" 
                        OnRowEditing="gv_Personnel_EditRow" 
                        OnRowUpdating="gv_Personnel_UpdateRow"
                        AutoGenerateColumns="false" 
                        ShowFooter="true" 
                        DataKeyNames="BudgetLineID"
                        AutoGenerateEditButton="true" 
                        AutoGenerateDeleteButton="true"
                        >
            <Columns>                 
                <asp:BoundField HeaderText="Level of Staff" DataField="LineDescription" />
                <%--<asp:BoundField HeaderText="Hrs/Units requested" DataField="NumberOfUnits" />--%>
                <asp:TemplateField HeaderText="Hrs/Units requested">
                    <ItemTemplate>
                        <%# Eval("NumberOfUnits")%>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="tb_NumUnits" runat="server" Text='<%# Bind("NumberOfUnits")%>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:BoundField HeaderText="Hrs/Units of Applicant Cost Share" DataField="" NullDisplayText="0" />
                <asp:BoundField HeaderText="Hrs/Units of Partner Cost Share" DataField="" NullDisplayText="0" />
                <asp:BoundField FooterStyle-Font-Bold="true" FooterText="TOTAL PERSONNEL SERVICES:" HeaderText="Rate" DataFormatString="{0:C}" DataField="UnitPrice" />
                <asp:TemplateField HeaderText="Amount Requested" ItemStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right"  FooterStyle-BorderWidth="2" FooterStyle-Font-Bold="true"/>
                <asp:TemplateField HeaderText="Applicant Cost Share" ItemStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right" FooterStyle-BorderWidth="2" FooterStyle-Font-Bold="true"/>
                <asp:TemplateField HeaderText="Partner Cost Share" ItemStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right" FooterStyle-BorderWidth="2" FooterStyle-Font-Bold="true"/>
                <asp:TemplateField HeaderText="Total Projet Cost" ItemStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right" FooterStyle-BorderWidth="2" FooterStyle-Font-Bold="true"/>
            </Columns>
        </asp:GridView>

最佳答案

我不确定这是否有帮助..但这是我在 msdn site 中找到的

The Keys, OldValues and NewValues collections are automatically populated only when the GridView control is bound to data by using the DataSourceID property.

关于asp.net - OnRowUpdating事件中GridView的NewValues和OldValues为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2429864/

相关文章:

c# - 重写 System.Web.Security.Roles 函数?

c# - Entity Framework - 将字段值更新为当前数据库服务器时间

java - 如何创建 GUI 网格并将每个结果放入每个网格中?

asp.net-3.5 - 有没有办法在 WebForms 中呈现部分 View ?

php - 将网站服务嵌入另一个网站的最佳方式

asp.net - 从 IValidatable 对象调用我的 Repository 类是错误的方法

c# - 如何在代码隐藏中从 GridView 访问选定的 Boundfield 值

c# - 使用存储过程在 ASP Gridview 中自定义分页

c# - 对文本框 onblur 事件进行数据库查询

webforms - jQuery $Ajax 将数据从 webform 发布到 ASP.NET 中的代码隐藏方法