如何在gridview中找到特定行的值
本文关键字:gridview | 更新日期: 2023-09-27 18:04:45
如何在gridview中找到特定行的值。假设一个gridview有10行4列。我知道我们可以找到行号从行索引,但我们怎么能找到什么是第5行第2列的值(根据我的gridview)或知道单元格的值?
使用如下:
CustomersGridView.Rows[rowIndex].Cells[cellIndex].Text
关于。rows collection的更多信息
如果您对FindControl
方法感兴趣,最适合您的事件是RowDataBound:
void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
var control = e.Row.Cell[cellIndex].FindControl("ControlID");
e.Row.Cells[1].Text = ((TypeOfControl)control).Text;
}
}
假设每列一个单元格,这应该可以做到:
string cellValue = GridView1.Rows[4].Cells[1].Text;
这将给你第5行第2列的值
根据如何构建行(例如,如果一个列有DropDownList或其他类似的控件),您可能最好使用FindControl(controlID)
。
假设你有一个DropDownList
在第二列ID="ddlMyDropDown":
DropDownList ddl = (DropDownList)GridView1.Rows[4].FindControl("ddlMyDropDown");
将代码放入哪个事件取决于您为什么要尝试查找该值。如果你能给出一个例子,说明你什么时候/为什么需要获取这个值,我们就能告诉你它可能应该进入哪个事件。
更新2
假设行中有一个按钮,处理RowCommand
事件:
protected void GridVie1_RowCommand(object sender, GridViewCommandEventArgs e)
{
rowIndex = Convert.ToInt32(e.CommandArgument);
DropDownList ddl = (DropDownList)GridView1.Rows[rowIndex].Cells[1].FindControl("ddlMyDropDown");
// Do something
}
在这里一定要小心,因为只要单击行中的一个按钮,就会触发RowCommand,因此您需要确保单击了哪个按钮。如果您设置了按钮,您可以使用e.CommandName
来获取按钮的CommandName,但是要注意有一些预定义的名称。
看到显示数据表格。行命令事件获取更多信息。
如果你能更新你的问题与一些更多的信息(即,为什么你需要得到的值和什么交互与GridView将启动该过程,如按钮点击),一个更精确的答案可以提供。
我今晚差不多结束了,但我明天再检查这个线程。
如果你知道单元格的值,那么我们就可以找到行
protected void GridView1_DataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[0].Text.Contains("sometext"))
{
//code here..
}
}
}