• 【蛙蛙推荐】ListControl绑定空值的处理


    问题:我们从数据库取出数据绑定到listbox里,如果DataValueField有多项为空,而你的listbox可以多选,这时候你选了多个ListBox的值,再点击其它按钮处理这些值的时候,尽管你选了多个值,但因为好多value都是零长度字符串,所以无法选中。
    解决:我们可以利用ListControl的DataBinding事件来处理数据源,然后重新绑定,代码如下。
    void bindlist()
    {
     //获取数据源并设置相应的绑定字段
     ListBox1.DataSource = wawa.ContactsManager.GetDetpGroup(1);   
     ListBox1.DataValueField ="mobile";
     ListBox1.DataTextField = "friendname";

     //挂接Binding事件
     ListBox1.DataBinding +=new EventHandler(ListBox1_DataBinding);
     ListBox1.DataBind();
    }

    private void ListBox1_DataBinding(object sender, EventArgs e)
    {
     //获取listbox
     ListControl lc = sender as ListControl;
     if (lc != null)
     {
      //获取数据源
      DataSet ds = lc.DataSource as DataSet;
      if (ds != null)
      {
       DataTable dt = ds.Tables[0];
       //判断数据源里是否有mobile列
       if (dt.Columns.IndexOf("mobile") != -1)
       {
        int i = 0;
        //循环所有行,并重新给mobile列赋值
        //注意这里用一个递增的i作为后缀,是为了防止绑定后的listbox值重复
        foreach(DataRow dr in dt.Rows)
        {
         if (dr.IsNull("mobile") || dr["mobile"].ToString() == "")
         {
          dr["mobile"] = "n/a" + i.ToString();
          i++;
         }
        }
       }
       lc.DataSource = dt;
      }
     }
    }

    然后你处理值的时候可以判断value是否是"n/a"开头的,就可以知道是否是个无效值了。

  • 相关阅读:
    fastjson转对象的一些属性设置
    Linux下重命名文件或文件夹(mv命令与rename命令)
    Linux下打包压缩war、解压war包和jar命令
    linux如何复制文件夹和移动文件夹
    linux下使用tar命令
    linux压缩和解压缩命令大全
    2019第11周日
    Git上传空文件夹的方法
    SpringBoot2
    Spring Boot 历史
  • 原文地址:https://www.cnblogs.com/onlytiancai/p/483525.html
Copyright © 2020-2023  润新知