2014-01-14 33 views
1

我有gridview使用存儲過程從數據庫中的一個表中放入數據。 點擊編輯按鈕後,會發生刷新gridview上的數據,錯誤的行顯示爲edir模式的回發。在GridView中點擊編輯按鈕在編輯模式下輸入錯誤的行

我發現原因是,點擊編輯鏈接javascript:__doPostBack('GridView','Edit$0')顯示在狀態欄,這是一個問題在這裏。 Edit$0意味着該行的絕對值,當回發從數據庫中獲取錯誤的行數據時顯示編輯模式...

我認爲解決方案將放在編輯模式的基礎上沒有行號,但一些獨特的價值所選行的編輯。

如果有人回答,請幫忙。

回答

0

如果你使用一個GridView我建議使用原生OnRowEditing =「GridViewEditEventHandler」 ,然後在後面的代碼

protected void TaskGridView_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
    //Set the edit index. 
    TaskGridView.EditIndex = e.NewEditIndex; 
    //Bind data to the GridView control. 
    BindData(); 
    } 

看到http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowediting(v=vs.110).aspx

但是,如果由於某種原因要創建當你按下編輯按鈕和一個onClick函數,則改變ItemTemplate中顯示/隱藏值我建議做

GridViewRow gvr = (GridViewRow)(((Button)e.CommandSource).NamingContainer); 


      int RowIndex = gvr.RowIndex; 

從那裏你可以做的.findcontrol找到你想要的特定項目例如: TextBox txtbox =(TextBox)TaskGridView.Rows [RowIndex] .FindControl(「textBoxID」);

希望這可以幫助

+0

我已經嘗試使用您提供的相同鏈接的OnRowEditing,但它沒有幫助。另外,真正的問題發生在我點擊編輯鏈接時......假設我在GV中有5行,並且在第2行上點擊編輯,數據庫表會獲取一些插入或從表中刪除的新行,所以行號發生變化,因爲它在基於行號的編輯模式中是錯誤的行。 – user3192613

+0

如果您使用新行重新創建GV,則可以將TaskGridView.EditIndex重置爲您希望在數據表上創建的索引。 EX:您單擊第2行,並根據數據庫表插入和刪除GV中的行。發生這種情況後,將editindex =設置爲基於您擁有的任何參數的那一行 –

+0

設置TaskGridView.EditIndex並沒有幫助,因爲它仍然會考慮先前點擊過的編輯的相同行號,但現在GV得到刷新並且表中的新數據可以將該行號更改爲其他任何內容......但它仍會編輯不能有其他數據的同一行號。 – user3192613

相關問題