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

时间: 2008-05-24 / 分类: 学习心得 / 浏览次数: 4,347 / 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 的模板

发表评论

您的昵称 *

您的邮箱 *

您的网站