我正在嘗試對GridView
中的行執行操作。根據我在網上閱讀的內容,有幾種方法可以執行此類操作。所有這些方法看起來都非常複雜,涉及很多手動管道。在GridView行上執行操作的最佳方式
例如,以 「刪除」 從GridView
一個項目,我遇到這些方法:
1:使用GridView
RowCommand
事件:
protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
GridViewRow gridviewRow =
CoordinateFilesGridView.Rows[Convert.ToInt32(e.CommandArgument)];
MyEntity entity = (MyEntity)gridviewRow.DataItem;
if(e.CommandName.Equals("Delete"))
{
// Perform delete action
Delete(entity);
}
}
2 :向「刪除」按鈕提供OnClick
事件
public void Delete_Clicked(Object sender, System.EventArgs e)
{
var item = ((sender as WebControl).NamingContainer as DataListItem);
var rowID = int.Parse(((HiddenField)item.FindControl("rowID")).Value);
GridViewRow gridviewRow = CoordinateFilesGridView.Rows[rowID];
MyEntity entity = (MyEntity)gridviewRow.DataItem;
// Perform delete action
Delete(entity);
}
3:鏈接到一個URL,並打破了查詢字符串倒在Page_Load
if (queryString != null && queryString["action"] != null)
{
if (queryString["action"].Equals("delete") && queryString["rowID"] != null)
{
GridViewRow gridviewRow =
CoordinateFilesGridView.Rows[(int)queryString["rowID"]];
MyEntity entity = (MyEntity)gridviewRow.DataItem;
// Perform delete action
Delete(entity);
}
}
你將如何執行這樣的操作?有一個更好的方法嗎?
將一個OnClick事件提供給「刪除」按鈕。因爲RowCommand每次檢查所有行的刪除操作 – 2013-05-03 08:21:05
@SaroopTrivedi'RowCommand'不檢查所有行,只檢查點擊行。 – 2013-05-03 08:30:05