我有一个Gridview,它的过滤。我的问题是如何在点击Button时过滤后通过DataTable访问过滤后的Gridview的第一行
SqlDataAdapter da = new SqlDataAdapter("SELECT Id, Num, Trans, S ,Est_Trans,Linked FROM vwOpenTcktSum_TransTypeTotal WHERE (Q = @Q) AND (S = @S)", cs);
da.SelectCommand.Parameters.AddWithValue("@Q", Q);
da.SelectCommand.Parameters.AddWithValue("@S", S);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = new DataTable();
dt = ds.Tables[0];
DataTable newDataTable = dt.AsEnumerable()
.Where(r => !ListLinkedIds.Contains(r.Field<int>("LinkedTicketId")))
.CopyToDataTable();
Session["Data"] = ds;
gvMain.DataSource = newDataTable; //Datasource
gvMain.DataBind();
protected void btnGetNext_Click(object sender, EventArgs e)
{
//Get Top Row from Gridview
}
答案 0 :(得分:1)
在网格视图中的RowIndex之后,您可以转到每列的Cell [index]。
GridView1.Rows[0].Cells[0].Text
答案 1 :(得分:0)
不幸的是,您无法通过按钮单击访问数据表本身,因为数据源在绑定到gridview控件后被释放。您可以从数据表中提取数据的唯一时间是最初创建数据或绑定到gridview行时。要访问生命周期的行数据绑定部分,我认为gridview属性称为OnRowDataBound,但我通常使用转发器控件,所以我无法从经验中说出来。
话虽如此,但您可以从行本身访问数据。这可以通过使用发送方的父(或祖先)来完成(假设发送方是gridview行中的按钮)。将发送者的父级转换为gridview,然后在其行集合中查找所需的行,在这种情况下,第一行的索引可能为0。
我打算为你输入一个例子,但N4TKD评论中提供的链接很好地解释了它。如果你错过了,那就再来一次: