模板列和UserControl结合的问题
我做了以下步骤:
1.创建了一个UserControl,里面只有DropDownList一个控件,包装了数据绑定的东西,并添加了一个SelectedValue属性,设置其为Bindable(添加[System.ComponentModel.Bindable(true)]和get、set方法)。
2.创建了一个WebForm,主要是一个DataGrid,将第1步做的UserControl放到它的模板列中,在页面中模板列部分代码如下:
<EditItemTemplate>
<uc1:ctlPanelType id=CtlPanelType1 runat="server" SelectedValue='<%# DataBinder.Eval(Container.DataItem, "paneltype") %>'>
</uc1:ctlPanelType>
</EditItemTemplate>
问题是运行时,点了编辑按钮后,UserControl中的下拉框总是定位在最上面一个值,而没有绑定到数据库中实际的值。若把UserControl替换成Text,则没有问题。
调试过程中跟踪到执行顺序为:
页面.Page_Load => DataGrid1_EditCommand => UserControl.Page_Load => 页面.模板列绑定 => UserControl.新增属性的set事件
怀疑自己哪里代码没写全或是写法不对,这个问题已经花了好长时间调试不出,请高人指教,有愿意指教的我可以提供代码,重谢。QQ:50408 MSN:majiye88@hotmail.com