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

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
量子位
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
U
Unit 42
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
博客园 - 【当耐特】
云风的 BLOG
云风的 BLOG
博客园 - Franky
博客园 - 聂微东

博客园 - 鱼跃千里

Python抽奖程序 - 鱼跃千里 - 博客园 右键菜单添加CMD--备忘 - 鱼跃千里 - 博客园 windows 7安装sql server2005以及com (-1073737712错误)+ 8004e00f错误 Nhibernate 2.0 学习笔记,关于hbm映射文件的重要性 要签约了 [转]虚方法和抽象方法 腾讯笔试 IE7不能支持Google的Google Suggest? 两个不错的生成图片验证码代码 继承类实例化时构造函数的执行顺序 FCKEditor的使用---起步 [转+自己修改]将 MS SQL Server 2005 SP2 整合到安装文件 Google AdSense 申请通过了 [转]发生 LC.exe 已经退出 代码-1 错误的解决方法 [转]VS2005 SP1集成版制作 为DataList和GridView内容项添加序号 超时时间已到。在操作完成之前超时时间已过或服务器未响应。 (.Net SqlClient Data Provider) [转]最佳ASP.NET编程习惯 DataList嵌套绑定数据
DataList等控件嵌套绑定的一个需要注意的地方
鱼跃千里 · 2008-06-03 · via 博客园 - 鱼跃千里

        前两天刚刚搞定了DataList的嵌套绑定,结果今天用的时候就一直出问题,每次执行都找不到指定的控件,给我一个NULL的异常.(点这里看"DataList嵌套绑定数据")
       为什么找不到控件呢,使用的东西都一模一样.研究了好半天,才发现原来是一个ListItemType的问题,上次我使用的时候,就直接用的ItemTemplate,看代码,没有在ItemTemplate之前再有其他的Template

Code

所以就可以直接在代码中使用

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    
{
        
string f = ((Label)e.Item.FindControl("Label1")).Text;
      //具体操作代码
}

结果今天用的时候,为什么总是有一个"NULL-----"异常呢,原来,我在datalist里面用了一下HeaderTemplate,结果在HeaderTemplate绑定数据完成时就去查找控件,这时候ItemTemplate中的控件还没有加载,当然就找不到了.代码:

Code

所以要在DataList的绑定事件中加一个判断,判断一下是否是ItemTemplate的绑定事件,重要的就是那个ListItemType

1 protected void dlistOut_ItemDataBound(object sender, DataListItemEventArgs e)
2    {
3        if(e.Item.ItemType==ListItemType.Item)
4        {
5             string qid = ((Label)e.Item.FindControl("lblQID")).Text;
6         //具体操作代码
7             }

8          }

在GridView中有点点不一样,应该用的是DataControlRowType

void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  
{
        
    
if(e.Row.RowType == DataControlRowType.DataRow)
    
{
      
// Display the company name in italics.
      e.Row.Cells[1].Text = "<i>" + e.Row.Cells[1].Text + "</i>";
        
    }
    
  }