我有一個帶有CRUD功能的gridview用戶控件。我有一個OnRowDeleting事件和一個RowCommand事件來檢查我的'刪除'按鈕是否被點擊。具有刪除行功能的GridView用戶控件在刪除後不會更新我的GridView
OnRowDeleting:
protected void grd_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
grd.EditIndex = -1;
pnlSelected.Visible = false;
btnSave.Visible = false;
btnInsert.Visible = false;
grd.DataBind();
}
RowCommand:
protected void grd_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
LinkButton lnkBtn = (LinkButton)e.CommandSource; // the button
GridViewRow myRow = (GridViewRow)lnkBtn.Parent.Parent; // the row
GridView myGrid = (GridView)sender; // the gridview
string item = (string)myGrid.DataKeys[myRow.RowIndex].Value.ToString();
DataController.DeleteByPrimKey(item);
}
}
在我的網絡表單,填補了我的用戶的數據源。現在的問題是我想刪除一條記錄。
ucShowHouseList.DataSource = myDataSource;
如果我在我的gridview中刪除一條記錄,gridview不顯示更改。如果我刷新頁面,記錄被刪除。
可能是什麼問題?
編輯:
我想我的問題是,在用戶控件的數據源沒有得到後刪除更新。所以在我的網頁表單的Page_Load中我填了我的用戶的數據源:
ucShowHouseList.DataSource = myDataSource;
在行刪除在我的用戶我現在做的事:
grd.DataSource = DataSource;
grd.DataBind();
數據源是在我的用戶一個IEnumerable屬性我在我的webform中填寫page_load。
public IEnumerable DataSource;
這將返回項目的集合,當我刪除行,因爲我的網頁是不是重新加載,因此收集不能被更新不更新。
如何解決?
注意:不是'lnkBtn.Parent.Parent'使用'lnkBtn.NamingContainer'來獲取'GridViewRow'。根據你的問題,在你更改'DataSource'之後,你有'DataBind'' GridView'嗎? –
沒關係我通過重新填充我的數據源,然後重新綁定它來解決我的問題。我的問題現在解決了 –