datagrid update command

G

Guest

i wrote a code to update datagrid with the datagrid updatecommand but i cant get the updated values after being update
that is the code

private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
TextBox temp
temp=(TextBox)e.Item.Cells[0].Controls[0]
String str=temp.Text;

str always returnt the old value of the cell (before being updated)
would u plz tell me about whats wrong i m doin
thnx alo
 
S

Scott M.

After the update, query the data from the data source by appending a select
SQL statement to the end of your update code or run a stored procedure that
pulls the fresh data down again.


Your code below doesn't show how you are actually updating the data, just
how you are getting the changed data from the input.


abdoly said:
i wrote a code to update datagrid with the datagrid updatecommand but i
cant get the updated values after being updated
that is the code

private void DataGrid1_UpdateCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e){
TextBox temp;
temp=(TextBox)e.Item.Cells[0].Controls[0];
String str=temp.Text;
}
str always returnt the old value of the cell (before being updated)
would u plz tell me about whats wrong i m doing
thnx alot
 
G

Guest

----- Scott M. wrote: ----

After the update, query the data from the data source by appending a selec
SQL statement to the end of your update code or run a stored procedure tha
pulls the fresh data down again


Your code below doesn't show how you are actually updating the data, jus
how you are getting the changed data from the input


abdoly said:
i wrote a code to update datagrid with the datagrid updatecommand but
cant get the updated values after being update
that is the cod
System.Web.UI.WebControls.DataGridCommandEventArgs e)
TextBox temp
temp=(TextBox)e.Item.Cells[0].Controls[0]
String str=temp.Text

str always returnt the old value of the cell (before being updated
would u plz tell me about whats wrong i m doin
thnx alo


thanks for ur care , but my problem is that i need to get the new value wrote in the datagrid text to update the data source with it,whatever how i update the data, i just need to know how to fetch the new value even if i want to preview it on the for
thnk
 
S

Scott M.

Here is code that will grab the user inputted data and write it back to the
DataSet that the grid is bound to and rebind the grid. This is what you are
not doing. You must re-bind the grid to the changed dataset in order for
the grid to show the new contents.

Private Sub dg_UpdateCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dg.UpdateCommand

' "FindControl" will only accept the name of a control
Dim editObject As Object=
CType(e.Item.Cells(0).FindControl("ControlNameHere"), ControlTypeHere)
ds.Tables(0).Rows(e.Item.ItemIndex).Item("CustID") = edittext.Text

' Repeat the above steps for each column (and control in the grid)

'Get out of edit mode
dg.EditItemIndex = -1

'Update the DataGrid
dg.DataBind()
End Sub


abdoly said:
----- Scott M. wrote: -----

After the update, query the data from the data source by appending a select
SQL statement to the end of your update code or run a stored procedure that
pulls the fresh data down again.


Your code below doesn't show how you are actually updating the data, just
how you are getting the changed data from the input.


abdoly said:
i wrote a code to update datagrid with the datagrid updatecommand
but i
cant get the updated values after being updated
that is the code
System.Web.UI.WebControls.DataGridCommandEventArgs e){
TextBox temp;
temp=(TextBox)e.Item.Cells[0].Controls[0];
String str=temp.Text;
}
str always returnt the old value of the cell (before being updated)
would u plz tell me about whats wrong i m doing
thnx alot

thanks for ur care , but my problem is that i need to get the new
value wrote in the datagrid text to update the data source with it,whatever
how i update the data, i just need to know how to fetch the new value even
if i want to preview it on the form
 
J

John Saunders

abdoly said:
hi sir
my whole code to update is :
public void DataGrid1_UpdateCommand(object
source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
temp=(TextBox)e.Item.Cells[1].Controls[0];
String str=temp.Text;
this.TextBox1.Text=str;
editDr=this.dataSet11.Departments.Rows[e.Item.ItemIndex];
editDr.BeginEdit();
editDr["deptname"]=str;
editDr.EndEdit();
this.Cache["ds"]=this.dataSet11;
this.DataGrid1.EditItemIndex=-1;
this.DataGrid1.DataBind();
}
im using (TextBox) casting because another problem wich is using CType
always cause error says that CType is not defined inmy namespace, i tried to
find its base class but i couldnt
any way my problem is str always the old value before user update,i think
that has nothing to do with updating the dataset
because in all cases i will update it with the old value again

I don't see where you updated the database, only the in-memory dataset. Have
you confirmed what the value of "str" is immediately after it is set?

Also, CType didn't work because it's a VB.NET thing. You are correct to use
(TextBox) in C#.
 
J

John Saunders

abdoly said:
sir
how can i get textbox name to use findControl, the data grid is below

<asp:DataGrid id=DataGrid1 style="Z-INDEX: 101; LEFT: 168px; POSITION: absolute; TOP:

104px" runat="server" Width="224px" Height="112px" DataSource="<%# dataSet11 %>"

DataMember="Departments"

AutoGenerateColumns="False"OnUpdateCommand="DataGrid1_UpdateCommand"><Column
s><asp:BoundColumn
DataField="deptid" SortExpression="deptid"
DataField="deptname"SortExpression="deptname"HeaderText="deptname"></asp:Bou
ndColumn><asp:EditCommandColumn
ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel"
EditText="Edit"> said:
Text="Delete"
CommandName="Delete"></asp:ButtonColumn></Columns></asp:DataGrid>

I would not use a BoundColumn. Instead, I'd use a TemplateColumn. That way,
you can name the text box explicitly.
 
J

John Saunders

abdoly said:
sir

according to ur reply i understood that
first: u believe that may be the value already changed but i cant see it for some reasons
i made 3 things to if know that right
-i display it on a textbox on the form b4 updating the dataset
this.textBox1.text=str;
but i always see the old value
-i updated the dataset with the str and i wrote the dataset to xml file
after updating it
this.dataSet11.WriteXml(@"d:\x\x.xml");
and i checked the file and the old value was there.
-i used the debugger to watch str and the same result here
second: i have to update the datasource with the dataset every time i need to update a

record, then why i use a dataset if i will go to the server every transaction
any way i tried to update the datasource as

this.sqlDataAdapter1.Update(this.dataSet11,"departments");
and the same result , no change in the old value

I strongly suggest that you simplify your scenario.
 
S

Scott M.

You need to create template columns that you can place your own controls
into. Then you can give the controls the ID's that you want.


abdoly said:
sir
how can i get textbox name to use findControl, the data grid is below

<asp:DataGrid id=DataGrid1 style="Z-INDEX: 101; LEFT: 168px; POSITION: absolute; TOP:

104px" runat="server" Width="224px" Height="112px" DataSource="<%# dataSet11 %>"

DataMember="Departments"

AutoGenerateColumns="False"OnUpdateCommand="DataGrid1_UpdateCommand"><Column
s><asp:BoundColumn
DataField="deptid" SortExpression="deptid"
DataField="deptname"SortExpression="deptname"HeaderText="deptname"></asp:Bou
ndColumn><asp:EditCommandColumn
ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel"
 
G

Guest

si
i used the template columns and i used the findcontrol but the same resul
i will send u the project would u plz just take alook
 
S

sobin

hi ,


i m also facing with ur problem.. i want to update my database with
new value.. But i'm getting the old value only...

I simply tried to display the new value on to the form, but it is
showing the old value..

Tell me, how to solve this...

Sobin

(e-mail address removed)
 
S

sobin

Hi,,


i m also facing with the same problem..
i tried to update my datagrid with new values using the update
command.. but i m getting the old value only..

i don no how to resolve it..

plz help me..

(e-mail address removed)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,825
Latest member
VernonQuy6

Latest Threads

Top