2017-04-26 58 views
0

當我按下編輯按鈕後按下按鈕以應用所做的更改時,我的gridview行更新按鈕不起作用。我錯過了什麼嗎?Gridview行更新按鈕無法正常工作

我的代碼看起來像這樣

C#

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    string afspraak = ((TextBox)(GridView1.Rows[e.RowIndex].FindControl("EditAfspraak"))).Text; 
    string uitleg = ((TextBox)(GridView1.Rows[e.RowIndex].FindControl("EditUitleg"))).Text; 
    int id = Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].FindControl("EditID"))).Text); 
    _controller.RecordUpdatenTblAfspraken(afspraak, uitleg, id); 
} 

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    GridView1.EditIndex = e.NewEditIndex; 
} 

protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
{ 
    GridView1.EditIndex = -1; 
} 

ASP.NET

無法它正確因此它貼在這裏:

https://pastebin.com/S3S09nLL

突出顯示的按鈕不工作 enter image description here

+0

你裏面綁定在GridView(!Page.IsPostBack)? – user7415073

回答

1

您必須更改EditIndex後重新綁定網格。

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    GridView1.EditIndex = e.NewEditIndex; 

    GridView1.DataSource = mijnDatabaseBron; 
    GridView1.DataBind(); 
} 

這同樣適用於GridView1_RowCancelingEdit當更新已成功GridView1_RowUpdating。假設您將OnRowEditingOnRowCancelingEditOnRowUpdating事件添加到GridView。

也作爲user7415073評論,GridView的綁定必須在IsPostBack檢查。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     GridView1.DataSource = mijnDatabaseBron; 
     GridView1.DataBind(); 
    } 
} 

在這裏看到我的答案,你怎麼能輕易通過EditID到後面的代碼。

Get old value of label inside GridView during RowUpdating (ASP.NET GridView) C#