474,044 Members | 2,224 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Gridview - OldValues collection from ExtractValuesFr omCell method contains NewValues

9 New Member
Hello

I am having problems extracting the OldValues collection from the RowUpdating event in my GridView.

Every time I access this I am getting the values from the NewValues collection in both OldValues and NewValues. I am fairly sure that the data is not being rebound prior to the updating event.

I have posted my code below.

Thanks in advance.


Expand|Select|Wrap|Line Numbers
  1. <asp:Panel ID="pnlShowDelays" runat="server" Visible="true" CssClass="pnlLJDel">
  2.                 <div id="div1" class="divDelays">
  3.                     <asp:GridView ID="gvDelays" runat="server" GridLines="None" CellSpacing="1" DataKeyNames="id"
  4.                         OnRowCancelingEdit="gvDelays_RowCancelingEdit" OnRowEditing="gvDelays_RowEditing"
  5.                         OnRowUpdating="gvDelays_RowUpdating">
  6.                         <Columns>
  7.                             <asp:TemplateField HeaderText="Note Text">
  8.                                 <EditItemTemplate>
  9.                                     <asp:TextBox Font-Size="8pt" ID="txComm" TextMode="multiLine" runat="server" Text='<%# Bind("note_type_description") %>'></asp:TextBox>
  10.                                 </EditItemTemplate>
  11.                                 <HeaderStyle HorizontalAlign="Left" />
  12.                                 <ItemTemplate>
  13.                                     <asp:Label ID="lblComm" Font-Size="8pt" runat="server" Text='<%# Eval("note_type_description") %>'></asp:Label>
  14.                                 </ItemTemplate>
  15.                                 <ItemStyle VerticalAlign="Top" HorizontalAlign="Left" />
  16.                             </asp:TemplateField>
  17.                             <asp:CommandField HeaderText="Edit/Update" ButtonType="Image" ShowEditButton="True"
  18.                                 CancelImageUrl="~/images/RowCancel.gif" EditImageUrl="~/images/RowEdit.gif" UpdateImageUrl="~/images/RowUpdate.gif" />
  19.                         </Columns>
  20.                         <FooterStyle CssClass="gridViewFooterStyle" />
  21.                         <RowStyle CssClass="gridViewRowStyle" />
  22.                         <EditRowStyle CssClass="gridEditRowStyle" />
  23.                         <SelectedRowStyle CssClass="gridViewSelectedRowStyle" />
  24.                         <PagerStyle CssClass="gridViewPagerStyle" HorizontalAlign="Center" />
  25.                         <HeaderStyle CssClass="gridViewHeaderStyle" />
  26.                         <AlternatingRowStyle CssClass="gridViewAlternatingRowStyle" />
  27.                     </asp:GridView>
  28.                     &nbsp;
  29.                 </div>
  30.             </asp:Panel>
  31.  
  32.  
  33.  
  34.  
  35. public partial class TestPage : System.Web.UI.Page
  36.     {
  37.         protected void Page_Load(object sender, EventArgs e)
  38.         {
  39.             if (!Page.IsPostBack)
  40.             {
  41.                 loadGrid();
  42.             }
  43.         }
  44.  
  45.         protected void loadGrid()
  46.         {
  47.             SQLCons sq = new SQLCons();
  48.             Note_types nt = new Note_types();
  49.             nt.Get_NOTE_TYPES();
  50.             loadDelay(nt.RetDataSet);
  51.         }
  52.  
  53.         protected void BindData()
  54.         {
  55.             gvDelays.DataSource = null;
  56.             gvDelays.DataBind();
  57.             gvDelays.DataSource = (DataSet)Session["dsDelays"];
  58.             gvDelays.DataBind();
  59.         }
  60.  
  61.         protected void loadDelay(DataSet ds)
  62.         {
  63.             Session["dsDelays"] = ds;
  64.             BindData();
  65.         }
  66.  
  67.         protected void gvDelays_RowUpdating(object sender, GridViewUpdateEventArgs e)
  68.         {
  69.             DataControlFieldCell NewCell = gvDelays.Rows[e.RowIndex].Cells[0] as DataControlFieldCell;
  70.  
  71.             gvDelays.Columns[0].ExtractValuesFromCell(
  72.                 e.NewValues,
  73.                 NewCell,
  74.                 DataControlRowState.Edit,
  75.                 true);
  76.  
  77.             gvDelays.Columns[0].ExtractValuesFromCell(
  78.                 e.OldValues,
  79.                 NewCell,
  80.                 DataControlRowState.Edit,
  81.                 true);
  82.  
  83.  
  84.  
  85.             foreach (string key in e.OldValues.Keys)
  86.             {
  87.                 string s = e.OldValues[key].ToString();
  88.             }
  89.  
  90.             foreach (string key in e.NewValues.Keys)
  91.             {
  92.                 string s = e.NewValues[key].ToString();
  93.             }
  94.         }
  95.  
  96.         protected void gvDelays_RowEditing(object sender, GridViewEditEventArgs e)
  97.         {
  98.             gvDelays.EditIndex = e.NewEditIndex;            
  99.             BindData();  
  100.         }
  101.  
  102.         protected void gvDelays_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
  103.         {
  104.             gvDelays.EditIndex = -1;           
  105.             BindData();
  106.         }
  107.     }
  108.  
  109.  
Jun 23 '08 #1
0 2471

Sign in to post your reply or Sign up for a free account.

Similar topics

5
8379
by: Mark Olbert | last post by:
I ran into a situation this morning where the RowUpdating event of a GridView kept insisting there were no entries in either the OldValues or NewValues dictionaries. The GridView is bound to a strongly-typed collection, derived from CollectionBase, through the control's datasource property at runtime. From some googling it appears that, at least in the release candidate for NET2 this was a known bug; only binding to DataSources lets those...
3
9816
by: slemen | last post by:
The controls (textboxes) in the gridview row being updated have the old, pre user updated values in the RowUpdating event. Does anyone have an idea why? Thank you, Scott
1
9035
by: s.bussing | last post by:
Hi, I have been struggling with the GridView the whole day, but can not get this solved. The rowupdating event in my Gridview doesn't give me the new values only the old ones. In my GridView I do not use a DataSourceObject and can therefore not use e.NewValues or e.OldValues The columns used are template columns
3
1574
by: Just Me | last post by:
Im struggling a bit with the update function. I have bound a table with lets say 5 records ( 4 columns ) to the gridview , this displays jsut fine. I have added edit/cancel/update buttons in a column which duly fire the relevent events, I have handled the edit and canel events OK, but Im having problem with the row_updated event. I thought I would be able to get the new values e.newvalues.item(Columnindex)
4
6100
by: tim.cavins | last post by:
I have a GridView populated by an ObjectDataSource. I am having issues passing the parameters to the objectdatasource. I have verified that the method is being called but none of the parameters are being populated. Integers are being passed as 0 and strings are empty regardless of what I changed them to in Edit mode on the GridView. My object method to perform the update:
1
9577
by: Steve Kershaw | last post by:
Hi, I'm using the RowUpdating() event of an updatable GridView. I need to see the values of the columns in the updated row. There has got to be a way to do this! Any suggestions? Thanks in advance!
4
12560
by: anniebai | last post by:
Please help me with writing a RowUpdating function in C#, I don't know how to grab the current field's value and also get the old value for one of keys (which is ProjectName for editing) of the selected row. I've tried: e.Keys.Count, e.OldValues.Count, e.NewValues.Count -----------> all give zero Some said if TemplateField is used, e.Keys and Oldvalues, NewValues are all empty. Then what suppose to be used in such case? Thanks for any...
0
1182
by: anniebai | last post by:
Please help, I've been struggling this for days, it's killing me !! I am using DataControlFieldCell and ExtractValuesFromCell to get NewValues, but how to get OldValues or Keys (they're needed for the Update method)? protected void gvStudentsAndProjects_RowUpdating(object sender, GridViewUpdateEventArgs e) { for (int i = 0; i < gv.Columns.Count; i++) {
6
2002
by: =?Utf-8?B?UGF1bA==?= | last post by:
Hi I have a gridview control with a template column that has a textbox and when the control is bound to the datasource the textbox is filled ok. I then change what is in the textbox in the gridview control and in the gridview_RowDataBound event I have string DiscDescrip = Convert.ToString((e.Row.Cells.FindControl("txbxDiscgv") as TextBox ).Text); This returns what was initially loaded in the textbox but not what I had just changed it...
0
10337
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
12136
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
11601
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
12018
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10308
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6652
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
6836
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
5413
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
3970
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.