User Control事件无法触发?

写了一个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

posted on 2004-05-21 14:13 一个春天 阅读(2221) 评论(6) 编辑 收藏

评论

#1楼  回复 引用   

我也有同样的问题, 不过照你的方法解决不了!!


我的page 里, 左边是一个自定义的DateList 控件, 我通过它的一个属性
去动态调入右边的一个包括DataGrid的用户控件.

可DateGrid 的事情无效了.

protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);

string temp = ItemList6.LeftControl;
if (temp == "hotel")
{
HotelRecordGrid tmp=((HotelRecordGrid)Page.LoadControl("UserControls/HotelRecordGrid.ascx"));
PlaceHolder1.Controls.Add(tmp);
}
else if (temp == "air")
{
AirRecordGrid tmp=((AirRecordGrid)Page.LoadControl("UserControls/AirRecordGrid.ascx"));

PlaceHolder1.Controls.Add(tmp);
}
2004-05-21 15:33 | Michael.rao

#2楼  回复 引用   

如果把这段代码放在 private void Page_Load(object sender, System.EventArgs e)里, DataGrid 有效, 可得不到 ItemList6.LeftControl 这个属性.
2004-05-21 15:40 | Michael.rao

#3楼  回复 引用   

因为OnPreRender是在ASP.NET页面处理完回传事件之后才执行的,所以无法响应预定义的这些事件。

参见:
http://www.aspcool.com/lanmu/browse1.asp?ID=1085&bbsuser=aspnet
http://www.dotnet247.com/247reference/msgs/40/203630.aspx
2004-05-21 19:12 | aspring

#4楼  回复 引用   

ItemList6.LeftControl这个属性怎么声明的?是不是没有保存状态?
2004-05-21 19:29 | aspring

#5楼  回复 引用   

真的是没有保存状态!! 谢谢.
2004-05-21 21:24 | michael.rao

#6楼  回复 引用   

请问能够得到这样的一个datagrid的源代码么,现在这是焦头烂额了。如果能够帮忙的话,请发到我的信箱wanderingdog@msn.com
2004-10-13 00:10 | wanderingdog

导航

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

公告

昵称:一个春天
园龄:7年9个月
粉丝:2
关注:0

搜索

 
 

常用链接

随笔分类

随笔档案

文章分类

文章档案

Biztalk相关

友情连接

最新评论

阅读排行榜

评论排行榜

推荐排行榜