none
怎样获取GridView控件中模板列的Text值? RRS feed

  • 问题

  • 如题:
            for (int i = 0; i < gNewsList.Rows.Count; i++)
            {
                if (gNewsList.Rows[i].RowType == DataControlRowType.DataRow)
                {
                    for(int c = 0;c < gNewsList.Rows[0].Cells.Count;c ++)
                    {
                    Response.Write((gNewsList.Rows[i].Cells[c].Text));
                    }
                }
            }
    通过以上代码,可以获取控件中简单列的Text值,但对于模板列却不起作用,有什么办法获取吗?
    2009年11月21日 9:10

答案

全部回复

  • (gNewsList.Rows[i].Cells[c].FindControl(控件id)as label ).Text 
    • 已标记为答案 KeFang Chen 2009年11月23日 5:52
    2009年11月21日 9:45
  • 你说的这种方法我知道,那有没有办法能达到我说的目的,直接获取模板列的Text?
    2009年11月21日 9:55
  • 差不多这样
    foreach (GridViewRow r in GridView1.Rows)
                {
                    if (r.RowType == DataControlRowType.DataRow)
                    {
                        for (int o = 0; o < r.Cells.Count; o++)
                        {
                          Response.Write(  r.Cells[o].HasControls() ? (r.Cells[o].FindControl("Label1") as Label).Text : r.Cells[o].Text);

                        }
                    }
                }
     

    2009年11月21日 10:22
  • 模板列中的应该都是控件吧?

    如果是Label控件,使用

    Label lbl = (Label)gNewsList.Rows[i].FindControl(控件id));
    lbl.Text就是你要的。
    2009年11月21日 13:56
  • 那看来是没有更直接一点的方法了,如果模板列中存在多个控件,就要获取多个控件的值了。

    2009年11月22日 1:41
  • 你只能通过 FindControl来做
    【孟子E章】
    • 已标记为答案 KeFang Chen 2009年11月23日 5:52
    2009年11月22日 2:54
    版主