我把gridview分页后,每页最多10个,现在需要知道整个gridview里有多少行,然后动态添加一些控件,
 for (int i = 0; i < GridView1.Rows.Count; i++)//现在GridView1.Rows.Count=10了,下一页的行数不知道,应该怎么修改一下,才能获得整个gridview的行数?
        
        {//gridview每行都添加一个radiobuttonlist
            RadioButtonList radioButtonList = new RadioButtonList();
            radioButtonList.ID = "radioButtonList" + i;
            radioButtonList.Items.Add("开");
            radioButtonList.Items.Add("关");
            GridView1.Rows[i].Cells[7].Controls.Add(radioButtonList);

解决方案 »

  1.   

    如用DataSet绑定的话:
    ds.Tables[0].Rows.Count;
      

  2.   

    使用他的数据源的总行数啊
    dt.Rows.Count
      

  3.   

    如果数据源是一个DataTable的话:
    ((DataTable)GridView1.DataSource).Rows.Count就是总行数
      

  4.   

    感谢各位的回答,dataset的行到可以知道,我动态生成的控件,第二页上不知道能不能自动生成,我试试去
      

  5.   

    低偶合,尽量的把 功能独立,免得一个模块 启动 ,引起一大片的连锁反应。这样很吃内存的,你可以试者 专门写一个分页控件。我的IM 在正常模式下才占10MB 左右。最小模式下保持在1.7MB到4MB 之间。
      

  6.   

    楼上的各位老大,还是不行,由于把gridview分页了,
    for (int i = 0; i < GridView1.Rows.Count; i++)//现在GridView1.Rows.Count=10了,
    //如果这里用从ds里取的那个行数(16),
            
            {//gridview每行都添加一个radiobuttonlist
                RadioButtonList radioButtonList = new RadioButtonList();
                radioButtonList.ID = "radioButtonList" + i;
                radioButtonList.Items.Add("开");
                radioButtonList.Items.Add("关");
                GridView1.Rows[i].Cells[7].Controls.Add(radioButtonList);//这里报错,就找不到大于10的行----------------
    有没有办法获得第二页,重新动态生成一些控件,请高手再给指点一下,谢谢
      

  7.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {}里动态添加控件
      

  8.   

    ((DataTable)GridView1.DataSource).Rows.Count
      

  9.   

    感谢wuyq11的回答,您的方法是可行的,但是我又碰到另一个问题:
    我用一个按钮,在按钮的click事件中,需要用这些动态控件,总提示没有实例化。
    我不清楚,怎么把这个  GridView1_RowDataBound 按行绑定的数据  回传。
    自己写的绑定函数: protected void bind(){*******},可以在
    if (!IsPostBack)
            {
                bind();
            }
     但是这个按行绑定的动态控件,怎么才能回传呢?
    还请您再指点一下,谢谢