Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 611
  • Last Modified:

Change text of databound textbox programatically not creating Proposed version of data

This is a little esoteric. I have a text box control (txtbox1) bound to a dataset.  I am setting the .text property programmatically based on user interaction with another control.  The text box is on a TabPage (tabpage1).  When I set the text programmatically, navigate to TabPage2, and then return to the TabPage1,  the textbox reverts to the original text.  After changing the text programmatically if I test for myDataSet.myTable(0).myrow(currentrow)("FieldName",DataRowVersion.Proposed) I get a message that there is no proposed value.
 If I type the change by hand  I return the new value as proposed, and I don't lose the new value between navigation of the tabspages.  I would like to get the programmatic value to set a proposed value so that I still have the option of rejecting the change to the dataset, without having to write my own sub to manage this.  
Any ideas how to get the programmed text the register as having changed?  I tried setting the .modified property to True this did not work.
Is there a way to work directly with the data set to set a value as proposed while maitaining a record of the original value?  
thanks in advance
Tom Majarov  
0
tmajarov
Asked:
tmajarov
  • 2
  • 2
1 Solution
 
NetPointerCommented:
If you BIND your dataset with your textbox instead of manually assigning the .text property, you will get your desired results.
0
 
NetPointerCommented:
Me.TextBox1.DataBindings.Add("Text",dataset.datatable,"FieldName")
0
 
tmajarovAuthor Commented:
Dear NetPointer,
The text box is bound - it displays an initial value from the dataset.  I am trying to edit the text, and the thereby the intial value from the dataset by passing a value derived from the another control, for example a listbox, to the text property of the text box.   I can change the value in the dataset directly: for example

mydataset.tables(0).rows(0)("myField") = myListBox.SelectedText  

- but this then become the current value in the dataset and cannot be undone with a cancelcurrentedit call against the bindingcontext for the table.  
0
 
tmajarovAuthor Commented:
O.K. I think I just figured out how to do what I need to do.  I will not be awarding points for answers.  I am presenting the solution here, the moderators can decide whether or not to remove the question.  The solution my be helpful to others.


     Dim myRow As DataRow = myDataset.Tables("myTable").Rows(0)
     myRow.BeginEdit()
     myRow("myField") = strText
    TextBox1.Text = myRow("myField", DataRowVersion.Proposed)

This allows the new value (strText) to be listed as a propsed value in the dataset, and then sets the text in TextBox1 to this value.  It also allows the TextBox1.text to revert to the original value when CancelCurrentEdit is called against the BindingContext.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now