在asp.net中使用datatable的gridview不显示每一列

时间:2017-07-03 07:11:33

标签: c# asp.net gridview datatable

这是我的aspx代码:

  <div class="box-body">

        <asp:GridView ID="gvSms" runat="server" CssClass="table table-bordered table-striped">
        </asp:GridView>
    </div>

这是我的cs代码:

if(!Page.IsPostBack)
        {
            Master.pageHeaderTitle = "Employee Sms";
            DataTable dt = new DataTable();
            dt.Columns.Add("Employee Code");
            dt.Columns.Add("Employee Name");
            dt.Columns.Add("Mobile No");
            dt.Columns.Add("Message");
            dt.Columns.Add("Creating Date");
            var db = new HRContext();
            var data=db.EmployeeSms.Where(d => d.HasRead == false).OrderByDescending(d => d.Id).ToList();
            if(data!=null)
            {
                foreach(var item in data)
                {
                    string mobile = item.EmployeeMobile.TrimStart('8').TrimStart('8');
                    var emp = db.Employee.Where(d => d.OfficePhone == mobile).FirstOrDefault();
                    string code = "";
                    string name = "";
                    if(emp!=null)
                    {
                        code = emp.eployeId;
                        name = emp.firstName + " " + emp.lastName;
                    }
                    dt.Rows.Add(code,name,item.EmployeeMobile,item.SMS,item.CreatedAt);
                }
            }

            gvSms.DataSource = dt;
            gvSms.DataBind();

        }
由于一行中有长消息,因此未显示

使用此代码创建日期列。如果消息列发表评论,则显示。那我该怎么办呢?它使消息列多行或使gridview可滚动。我试过但不能。 任何形式的帮助都是值得的,并提前感谢。

1 个答案:

答案 0 :(得分:0)

首先,您应该在数据库中将Date列的数据类型设置为DateTimevarchar,然后使用:

string date = DateTime.Now.ToString("d/MM/yyyy");
dt.Rows.Add(code,name,item.EmployeeMobile,item.SMS,date);