gpt4 book ai didi

c# - 对 GridView 行执行操作的最佳方式

转载 作者:行者123 更新时间:2023-11-30 15:34:18 24 4
gpt4 key购买 nike

我正在尝试对 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);
}
}

你会如何执行这样的操作?有更好的方法吗?

最佳答案

根据您自己的喜好选择 1 或 2。

我通常会选择选项 1,因为它是内置的 GridView 按钮处理程序,所以如果您的行中有多个按钮,您只有一种方法来处理这些按钮,并且您正在重用代码-

GridViewRow gridviewRow = 
CoordinateFilesGridView.Rows[Convert.ToInt32(e.CommandArgument)];
MyEntity entity = (MyEntity)gridviewRow.DataItem;

而不是添加多个点击事件并可能将下面的代码添加到各个点击方法。

var item = ((sender as WebControl).NamingContainer as DataListItem);
var rowID = int.Parse(((HiddenField)item.FindControl("rowID")).Value);

但归根结底,这实际上只是您自己的喜好。我曾多次使用 1 和 2。我看不出您想要使用 3 的任何原因。

关于c# - 对 GridView 行执行操作的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16354218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com