用数据库值将datatable列填充为图像 [英] fill datatable column with database values as images

查看:99
本文介绍了用数据库值将datatable列填充为图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从数据库中检索用户名列表,并在数据表中将其显示为图像,并将鼠标悬停在任何图像上时,它将显示用户名.我的代码将开发人员名称列显示为以逗号分隔的开发人员列表.

I want to retrieve list of users names from database and display it in datatable as images and when hover on any image, it displayed the user name. My code display developer name column as a list of developers separated by comma.

这是我的代码:

public class Projects
    {
        public int project_number { get; set; }
        public string project_name { get; set; } 
        public string developer_name { get; set; }
        public  Image team_members { get; set; }
    }

json

columns: [
     { 'data': 'project_name' },
     { 'data': 'developer_name' },
     {
        "data": "team_members",
        "render": function (data, type, full, meta) {
        var markup = '';
        for (var i = 0; i < data; i++) {
           markup += '<img src="images/img.jpg" class="avatar" title="'++'">' }
       return markup;
       }
   }             
]

asmx:

    public void GetProjects()
        {
            SqlConnection conn = new SqlConnection("connection statement");
            conn.Open();

            var projects = new List<Projects>();

            using (var cmd = new SqlCommand("getProjects", conn) { CommandType = CommandType.StoredProcedure })
            using (SqlDataReader dr = cmd.ExecuteReader())
            {
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        var Project = new Projects
                        {
                            project_number = Convert.ToInt32(dr[1].ToString()),
                            project_name = dr[2].ToString(),
                        };
                        projects.Add(Project);

                        using (SqlCommand com = new SqlCommand("SELECT user_name FROM Users WHERE user_id IN (SELECT user_id FROM User_Projects WHERE project_number = @project_number)", conn))
                        {
                            com.Parameters.AddWithValue("@project_number", Project.project_number);
                            List<string> developerNames = new List<string>();

            using (SqlDataReader rdrDev = com.ExecuteReader())
                            {
                                if (rdrDev.HasRows)
                                {
                                    while (rdrDev.Read())
                                    {
developerNames.Add((string)rdrDev["user_name"]);
                                    }
                                }
                            }
                   Project.developer_name = string.Join(", ", developerNames);
                        }
                    }
                }
                var js = new JavaScriptSerializer();
                Context.Response.Write(js.Serialize(projects));
            }

        }

推荐答案

您可以在列声明中使用参数render. 拆分开发人员名称并对其进行处理以更正生成标记:

You can use parameter render in column declaration. Split developers name and process it to correct generate markup:

{
   "data": "developer_name",
   "render": function (data, type, full, meta) {
       var markup = '';
       var developers = data.split(',');
       for (var i = 0; i < developers.length; i++) {
           markup +='<img src="images/img.jpg" class="avatar" title="' + developers[i] + '">'
       });
       return markup ;
   }
}

这篇关于用数据库值将datatable列填充为图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆