asp.net – 在OnRowUpdating事件中,GridView的NewValues和OldVal
我有下面的GridView.我绑定到后面的代码中的自定义数据源.它进入“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> 解决方法
这就是here年微软员工所说的话. 在这种情况下,您可以使用ExtractValuesFromCell方法自行创建NewValues集合. 编辑: 我在this博客的评论中找到了一段代码: protected void OnRowEditing(object sender,GridViewEditEventArgs e) { GridView gv = (GridView)sender; gv.EditIndex = e.NewEditIndex; gv.DataBind(); ... } protected void OnRowUpdating(object sender,GridViewUpdateEventArgs e) { GridView gv = (GridView)sender; for (int i = 0; i < gv.Columns.Count; i++) { DataControlFieldCell cell = gv.Rows[e.RowIndex].Cells[i] as DataControlFieldCell; gv.Columns[i].ExtractValuesFromCell(e.NewValues,cell,DataControlRowState.Edit,true); } // now you can use NewValues collection normally } 没有对它进行测试,但似乎解决了这个问题,如果有的话请告诉我. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 图像按钮差距
- asp.net – Visual Studio 2012:无法附加进程.已
- asp.net-mvc – ASP.NET MVC应用程序显示奇怪的字
- asp.net – Autofac懒惰属性注入
- asp.net-mvc-4 – WebApi Json.NET自定义日期处理
- Response.Redirect()vs Response.RedirectPerman
- asp.net-mvc-4 – 你必须调用“WebSecurity.Init
- Asp网络核心 – 从模型到javascript
- Asp.net基本对象
- ASP.NET / VB.NET:Dropdownlist SelectedIndexC