GridView的RowDataBound事件和DataBound事件

 最近在使用gridview,添加模板后,网站对于模板按钮操作的代码很多都是在RowDataBound事件中,照抄使用后,本来没有问题。但是在这次做gridview的筛选功能的时候,发现一点小问题,就是我的dropdownlist中有一个是和数据库绑定的,于是在page_load事件中,给这个下拉框添加一个全部的选项。因为我的gridview放在了updatepanel中,每次更新数据后,这个gridview都重新从数据库获取。所以每次这样的时候,这个下拉框的选项又回复到刚开始的时候,少了我添加的自定义选项。于是我在gridview的RowDataBound事件中写:

       if (e.Row.RowType == DataControlRowType.DataRow)
                { 
                    DropDownList dd = (DropDownList)GridView1.HeaderRow.FindControl("DropDownList1");
                    ListItem it = new ListItem("all", "all");
                    dd.Items.Insert(0, it);
                }

 

       结果是我的数据行有多少项,这个下拉框就多加了多少个“all”选项。显然是不对的。

       仔细看了看,研究了下,终于明白了。每一个数据行绑定后,都调用一次这个函数。

        解决办法:很简单,看看gridview的事件中,有一个DataBound事件,就明白了。这个应该是全部数据绑定后调用的函数吧。这样就调用一次了。每次更新gridview的数据,或者说重新绑定,当在updatapanel中把下拉框也更新了的时候,在这里重新添加自定义的选项就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值