我想实现的功能是在DataList绑定数据时,如果字段News_Key(类型为Bit)的值为True时,就让Label1和HyperLink1的显示出来,为Fasle时Label1和HyperLink1为隐藏。
代码:
Label1,HyperLink1是放在DataList之外:
protected void DataList_itemData(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            if ((string)DataBinder.Eval(e.Item.DataItem, "News_Key") == "True")  
            {
                Label1.Visible = true; 
                HyperLink1.Visible = true;        
            }
         }
    }
以上的代码不执行。
如果把Label1,HyperLink1是放在DataList之内,这样用也不行的,代码如下:
protected void DataList_itemData(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            if ((string)DataBinder.Eval(e.Item.DataItem, "News_Key") == "True")  
            {
                (Label)label_fujian=(Label)DataList1.FindControl("Label1");
                (HyperLink)label_title=(HyperLink)DataList1.FindControl("HyperLink1");
            if ((string)DataBinder.Eval(e.Item.DataItem, "News_Key") == "True")  
            {
               label_fujian.Visible = true;  
               label_title.Visible = true;    
              }
         }
    }
以上的代码也不执行,请问是怎么回事?

解决方案 »

  1.   

    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
    DataRowView row = e.Item.DataItem as DataRowView;
    if( row != null)            if (Convert.ToBoolean(row["News_Key"]) )  
                {
    //....
      

  2.   

    bit 是1 或 0 的整数数据.  
    c sharp 中1 ,0 不等于 true ,false 
      

  3.   

    //****在ItemDataBound事件加入下面代码//****获取控件显示控制按钮显示状态编号
    HtmlInputHidden txtState=(HtmlInputHidden)e.Item.FindControl("txtID")//****获取Label控件
    Lable lblTitle=(Lable)e.Item.FindControl("lblTitle");//****获取连接处理页面控件
    HyperLink HylEdit=(HyperLink)e.Item.FindControl("HyperLink");
    if(txtState!=null)
    {
       if(txtState.value=="1")
       {
          lbltitle.visible=true;
          HylEdite.visible=true;
      }
      else
       {
         lbltitle.visible=false;
          HylEdite.visible=false;
       }
    }
      

  4.   

    很久以前,我也碰到过类似问题,后来把数据库的bit改成int就好了