ul动态操作(清空,增加)

 <ul id="divall">

 <!--<li><input type="text" class="changename" value="我的文件夹一" readonly="readonly" /></li>

 <li><input type="text" class="changename" value="我的文件夹二" readonly="readonly" /></li>

<li><input type="text" class="changename" value="我的文件夹三" readonly="readonly" /></li>

 <li><input type="text" class="changename" value="我的文件夹四" readonly="readonly" /></li>

<li><input type="text" class="changename" value="我的文件夹五" readonly="readonly" /></li>

 <li><input type="text" class="changename" value="我的文件夹六" readonly="readonly" /></li>

 <li><input type="text" class="changename" value="我的文件夹七" readonly="readonly" /></li>-->

 </ul>

动态增加

 $.get("/receptionfind/file", queryData, function (dataother) {  //dataother是controlled返回来的json数据
        if (dataother.total != 0) {
            for (var j in dataother.rows) {
                //<li><input type="text" class="changename" value="我的文件夹一" readonly="readonly" /></li>
                $("#divall").append("<li><input type=" + "'text'" + " class=" + "'changename'" + " value='" + dataother.rows[j].filename + "' readonly='" + "readonly" + "'/></li>");
                //$("#divall").append("<li><input type='text' \class='changename'\ value='"+dataother.rows[j].filename+"'/></li>");
                //alert(data.rows[j].Name);
                //$("#menuname").append("<option value='" + data.rows[j].menuid + "'>" + data.rows[j].Name + "</option>");

            }
        }
    })

controller

  [Route("receptionfind/file")]
        public IHttpActionResult gettable(string menu, string find)  //这两个参数自己去掉也行,看你需要什么
        {
            try
            {
                SqlConnection sqlConnection =
                    new SqlConnection(
                        "Data Source=(local);Initial Catalog=filemaneger;Persist Security Info=True;User ID=sa;Password=123456");
                sqlConnection.Open();
                string sql = "select fileid,filename,filetype,CreateDate,path from fileall where 1=1 ";
                if (menu != null && menu != "")
                {
                    sql += " and menuid='" + menu + "'";
                }
                if (find != null && find != "")
                {
                    sql += " and filename like '%" + find + "%'";
                }
                DataSet dataSet = new DataSet();
                SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sql, sqlConnection);
                sqlDataAdapter.Fill(dataSet);        //将数据填充进dataset 

                List<table> lt = DataSetToList<table>(dataSet, 0);    //用到实体类将数据与实体类映射
                var total = lt.Count;        //总数
                var rows = lt.Skip(0).ToList();      //分页存储到List中

                return Json(new { total = total, rows = rows });      //然后才转换成Json传递

            }
            catch (Exception ex)
            {

                return Ok(ex.Message);
            }


        }

转换函数

/// <summary>
        /// DataSetToList
        /// </summary>
        /// <typeparam name="T">转换类型</typeparam>
        /// <param name="ds">一个DataSet实例,也就是数据源</param>
        /// <param name="tableIndext">DataSet容器里table的下标,只有用于取得哪个table,也就是需要转换表的索引</param>
        /// <returns></returns>
        public List<T> DataSetToList<T>(DataSet ds, int tableIndext)
        {
            //确认参数有效
            if (ds == null || ds.Tables.Count <= 0 || tableIndext < 0)
            {
                return null;
            }
            DataTable dt = ds.Tables[tableIndext]; //取得DataSet里的一个下标为tableIndext的表,然后赋给dt

            IList<T> list = new List<T>();  //实例化一个list
            // 在这里写 获取T类型的所有公有属性。 注意这里仅仅是获取T类型的公有属性,不是公有方法,也不是公有字段,当然也不是私有属性                                               
            PropertyInfo[] tMembersAll = typeof(T).GetProperties();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                //创建泛型对象。为什么这里要创建一个泛型对象呢?是因为目前我不确定泛型的类型。
                T t = Activator.CreateInstance<T>();


                //获取t对象类型的所有公有属性。但是我不建议吧这条语句写在for循环里,因为没循环一次就要获取一次,占用资源,所以建议写在外面
                //PropertyInfo[] tMembersAll = t.GetType().GetProperties();


                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    //遍历tMembersAll
                    foreach (PropertyInfo tMember in tMembersAll)
                    {
                        //取dt表中j列的名字,并把名字转换成大写的字母。整条代码的意思是:如果列名和属性名称相同时赋值
                        if (dt.Columns[j].ColumnName.ToUpper().Equals(tMember.Name.ToUpper()))
                        {
                            //dt.Rows[i][j]表示取dt表里的第i行的第j列;DBNull是指数据库中当一个字段没有被设置值的时候的值,相当于数据库中的“空值”。 
                            if (dt.Rows[i][j] != DBNull.Value)
                            {
                                //SetValue是指:将指定属性设置为指定值。 tMember是T泛型对象t的一个公有成员,整条代码的意思就是:将dt.Rows[i][j]赋值给t对象的tMember成员,参数详情请参照http://msdn.microsoft.com/zh-cn/library/3z2t396t(v=vs.100).aspx/html

                                tMember.SetValue(t, dt.Rows[i][j], null);


                            }
                            else
                            {
                                tMember.SetValue(t, null, null);
                            }
                            break;//注意这里的break是写在if语句里面的,意思就是说如果列名和属性名称相同并且已经赋值了,那么我就跳出foreach循环,进行j+1的下次循环
                        }
                    }
                }

                list.Add(t);
            }
            return list.ToList();

        }

然后是清空操作

function qingkong() {
    var div = document.getElementById("divall");   //divall是ul的id
    while (div.hasChildNodes()) //当div下还存在子节点时 循环继续  
    {
        div.removeChild(div.firstChild);
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值