做了一个用户控件,选择地市的,从数据库查出数据绑定到一个dropdownlist,用户控件有个属性,根据属性确定当前的选择项
在gridview里的一个模板里应用此用户控件
问题:gridview分页时,用户控件的选项总是第一项,不会根据属性去选择,也就是说,在用户控件里得不到属性的值.
用户控件代码:
public int city_id;
public int CityID //这个属性在gridview页面分页时这里总是0,但赋的值不是0
{
get { return city_id ; }
set { city_id = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGrid(); //绑定
ddlArea.SelectedValue = city_id.ToString();
}
}
------解决方案--------------------------------------------------------
要让用户控件的选项随属性去选择,应该将用户控件的绑定写在GridView的OnItemDataBound事件里,因为OnItemDataBound在生成GridViewRow的时候发生,每生成一个GridViewRow,就触发一个OnItemDataBound事件