惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
H
Help Net Security
雷峰网
雷峰网
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
GbyAI
GbyAI
博客园_首页
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
I
InfoQ
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
Docker
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog

博客园 - Edwin dong

读取Excel文件问题 - Edwin dong - 博客园 FileUpload 控件 禁止手动输入 - Edwin dong .net 工具箱不可用 解决方式 javascript 判断是页面关闭还是页面刷新 开发环境不同引发的映射路径不正确的问题 安装.net2005遇到的一系列问题 jit 调试失败,出现以下错误:拒绝访问。jit调试由用户帐户"NT AUTHORITY\NETWORK SERVICE" 启动 - Edwin dong .Net环境下的缓存技术介绍 (转) 数据库中的字段为空时,使用isnull函数 查询数据库中满足条件的特定行数据 使用FileUpload控件上传文件时对文件大小的限制 "无法在证书存储区中找到清单签名证书"的解决办法 使用消息框 "无法在web服务器上启动调试,未将项目配置为进行调试"解决方法 使用FileUpload实现多个文件同时上传 'sys'未定义 - Edwin dong - 博客园 net连接access数据库,输出结果到页面 变相激发FileUpload事件 automation服务器不能创建对象
DataList控件嵌套,激发内部控件事件
Edwin dong · 2008-04-22 · via 博客园 - Edwin dong

DataList控件在嵌套的时候,内部控件都没有事件了,如果想激发事件,需要自己写事件。需要在外部DataList控件的ItemDataBound事件中给内部控件定义事件。但是要在内部控件绑定数据源之前定义。例如现在我有两个嵌套的DataList控件,外部控件ID为DL_DataList,内部控件ID为DL_Item。假如现在有一个已经定义好的DataTable类型的变量 dt。我们在DL_DataList_ItemDataBound事件中写代码如下:

private void DL_DataList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
        
{
            Control container 
= e.Item;
            ListItemType itemType 
= e.Item.ItemType;

            
if (itemType == ListItemType.Item || itemType == ListItemType.Footer || itemType == ListItemType.AlternatingItem)
            
{
                
if (e.Item.DataItem == null)
                
{
                    
return;
                }

            
                DataList dlList 
= (DataList) container.FindControl("DL_Item2");

                
if (null != dlList)
                
{
dlList.ItemCommand 
+= new DataListCommandEventHandler(DL_Item2_ItemCommand);
                        dlList.ItemDataBound 
+= new DataListItemEventHandler(DL_Item2_ItemDataBound);

                        dlList.DataSource 
= dt;
                        dlList.DataBind();
}
}

光这些还不行,我们还要另外定义一个方法,在Page_Load中调用re_Main_PreRender方法,就可以了。

protected void rp_Main_PreRender(object sender, EventArgs e)
        
{
            
foreach (DataListItem item in DL_DataList.Items)
            
{
                DataList rp_Min 
= (DataList)item.FindControl("DL_Item2");
                rp_Min.ItemCommand 
+= new DataListCommandEventHandler(DL_Item2_ItemCommand);
            }

        }