ASP.NET中关于GridView使用的几个问题

时间: 2008-05-24 / 分类: 学习心得 / 浏览次数: 3,937 / 0个评论 发表评论

研究了一天的.NET,解决了几个GridView使用上的问题,还正是挺麻烦的。

①GridView嵌套GridView的应用

这个主要是在外层GridView设置一下属性OnRowDataBound=GridView1_RowDataBound,然后在代码里面的GridView1_RowDataBound方法中,进行如下操作:

protected void GridView1_RowDataBound(object sender,GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
       
string type = e.Row.Cells[0].Text;
       
titlesTypeTableAdapter titlesType = new titlesTypeTableAdapter();
       
((GridView)e.Row.Cells[1].FindControl(GridView4)).DataSource

                =titlesType.GetPub_idByType(type);
       
((GridView)e.Row.Cells[1].FindControl(GridView4)).DataBind();

    }
}

当然了具体取得所在行的方法并不一定如此,只要能够实现就可以了。上面的代码是网上直接copy来的,具体实现的时候也并不是这样的,因为我的数据是动态绑定的,还是有些出入的。

②GridView嵌套使用DetailsView

为了显示详细信息,我尝试使用了DetailsView,本来是要使用FormView的,不过我发现DetailsView好像更加但一些,而且更加符合我的要求。同上面的嵌套GridView相同,也需要在使用的时候在外层GridView的OnRowDataBound属性对应方法中在操作的行中FindControl,代码与上面类似。

应用的时候如果要显示所有的数据,只需要设置AutoGenerateRows=True就可以了,否则设置为=False,并且添加自己所需要的列就可以了。

    用法其实很简单,只是从不会到会总需要一个过程。

③获取GridView模板列里面TextBox的值、Button的方法

为了直接在GridView里面添加信息并且插入数据库,我添加了一个模板列,在里面放置了一个TextBox和一个Button。因为对模板列的操作不是很熟悉,颇费了一番周折终于弄好了。

在Button的OnClick事件中,得到传递消息的对象,就是按钮,然后通过Parent找到对应的GridView行,在通过FindControl,就可以取得TextBox的值。代码如下:

           
Button btn = (Button)sender;
           
GridViewRow gvr = (GridViewRow)btn.Parent.Parent;
           
string index = gvr.Cells[0].Text.Trim();

           
TextBox text = (TextBox)gvr.Cell[8].FindControl(TextBox1);

           
string txt = text.Text.Trim();

④收藏几篇文章,这次没用到,但是觉得肯定会用得到:

SQL重复记录处理(查找,过滤,删除)

如何取得GridView被隐藏列的值

ASP.NET2.0 新增控件-BulletedList

在ASP.NET 2.0中操作数据:使用FormView 的模板

历史上的今天

2016年:雨后的蓝天与白云(37条评论)

2015年:快乐星期天363期:娱乐圈(21)(21条评论)

2013年:凌美狩猎者(Lamy Safari)体验(57条评论)

2010年:写评论,免费得Doulex鼠标灯(79条评论)

2009年:Geek Chart:社会网络分享图表(0条评论)

2009年:《藏地密码》7 香巴拉之夜 第二部分 真正的天堂(下)(0条评论)

2009年:《藏地密码》7 香巴拉之夜 第二部分 真正的天堂(上)(0条评论)

2007年:五一游莲花山(4)(0条评论)

2007年:[哲理]创造希特勒,扼杀贝多芬(3条评论)

2006年:又开始学习日语了~(2条评论)

发表评论

您的昵称 *

您的邮箱 *

您的网站