单击按钮时从DataTable访问Gridview中的顶行

时间:2013-07-25 20:20:40

标签: c# asp.net gridview

我有一个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
 }

2 个答案:

答案 0 :(得分:1)

在网格视图中的RowIndex之后,您可以转到每列的Cell [index]。

GridView1.Rows[0].Cells[0].Text

答案 1 :(得分:0)

绑定后无法访问数据源...

不幸的是,您无法通过按钮单击访问数据表本身,因为数据源在绑定到gridview控件后被释放。您可以从数据表中提取数据的唯一时间是最初创建数据或绑定到gridview行时。要访问生命周期的行数据绑定部分,我认为gridview属性称为OnRowDataBound,但我通常使用转发器控件,所以我无法从经验中说出来。


改为访问数据行......

话虽如此,但您可以从行本身访问数据。这可以通过使用发送方的父(或祖先)来完成(假设发送方是gridview行中的按钮)。将发送者的父级转换为gridview,然后在其行集合中查找所需的行,在这种情况下,第一行的索引可能为0。


奖金信息:

我打算为你输​​入一个例子,但N4TKD评论中提供的链接很好地解释了它。如果你错过了,那就再来一次:

相关问题