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

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
IT之家
IT之家
C
Check Point Blog
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
M
MIT News - Artificial intelligence
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
F
Fortinet All Blogs
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)

博客园 - 鱼跃千里

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>";
        
    }
    
  }