积分不多,一次问三个:
1,在label控件上显示当前girdview控件的记录条数?
2,页面中有几个textbox控件,如何在初进入页面时默认显示同页面中girdview控件第一条记录的内容,我的自己写的代码太复杂,想有没有更简洁的代码?
3,如何限制girdview控件上单元格显示的字数量?
三个小问题,请帮帮忙

解决方案 »

  1.   

    1.select count(*) from ...
      

  2.   

    2.TextBox1.Text = GridView1.Rows[0].Cells[1].Text;
    3.可以写个方法进行判断一下,再Gridview的那个单元格使用这个方法就行
      

  3.   

    1,遍历dirdview.rows.count2,进入页面后,查询出来的数据用DataTable接,绑定girdview时
    顺便把textbox绑定下
    如:
    textbox1.text=datatable.rows[0][0].tostring();//rows[0]代表第一行
    textbox.text=datatable.rows[0][1].tostring();3,    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                //标题超过30字用...代替
                if (e.Row.Cells[1].Text.Length > 30)
                {
                    e.Row.Cells[1].Text = e.Row.Cells[1].Text.Substring(0, 30) + "...";
                }
            }
        }
      

  4.   

    第1个问题,如果不用分页的化, 获取你所绑定的集合例如你是绑定的dataTable ,直接 dataTable.Rows.count
    第2个问题,讲下我的想法,也是获取绑定源,然后把数据源中第1行的值赋值到 textbox控件,当然这是对于没有分页的做法,如果做了分页的话,可以这样弄,使GridVIew默认选中第1行,然后在“已经选择了一行”的事件下写,注意是已经选择了行的事件,不是正在选择行的事件,(一个是 ed,一个是ing)
    第3个问题
    参考这个GridView实现用“...”代替超长字符串:protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Cells[3].Text = SubStr(e.Row.Cells[3].Text, 10);
            }
        }
        public string SubStr(string sString, int nLeng)
        {
            if (sString.Length <= nLeng)
            {
                return sString;
            }
            string sNewStr = sString.Substring(0, nLeng);
            sNewStr = sNewStr + "...";
            return sNewStr;
        }
      

  5.   

    那个问题3,有没有办法直接在数据绑定的时候<%#Eval%>,直接限制某一列的显示字数呢?