http://www.cnblogs.com/aspring/archive/2004/05/21/10734.aspx

写了一个User Control,User Control中包含了一个DataGrid.
DataGrid的列是动态生成的(包括一个EditCommandColumn)。然后给DataGrid加了一个EditCommand事件处理程序。希望点击EditCommandColumn的时候可以对当前行的数据进行编辑。

运行,点击EditCommandColumn,结果什么反应也没有。跟踪了一下,居然没有触发EditCommand事件处理程序。怪事!!!

开始以为是DataGrid动态创建的原因。最后才发现原来是User Control装入的问题(需要把动态装入的控件进行强制类型转化):
原来的写法:
Control tmp=(Page.LoadControl(”TestControl.ascx”)); 
phldTest.Controls.Add(tmp);  
修改后的写法:
TestControl tmp=((TestControl)Page.LoadControl(”TestControl.ascx”)); 
phldTest.Controls.Add(tmp);  

参考:
http://p2p.wrox.com/topic.asp?TOPIC_ID=7114

 

Text Data Access(翻译)


1条评论

  1. phldTest为加载用户控件的容器控件,如Panel,在要加入的页面的Page_Load动态用

    TestControl tmp=((TestControl)Page.LoadControl("TestControl.ascx"));

    phldTest.Controls.Add(tmp);

发表评论

评论也有版权!