修改c#页面中的gridview元素

时间:2013-11-26 10:18:55

标签: c# asp.net sql-server

我正在使用带有c#的asp.net开发一个Web应用程序,上面的代码行将使我显示gridview,如下所示。 enter image description here

   DateTime startDate;
    DateTime endDate;

    if (DateTime.TryParse(txtstart.Text, out startDate) && DateTime.TryParse(txtend.Text, out endDate))
    {
        //string n1 = DropDownList2.SelectedItem.Text;

        if (DropDownList1.SelectedItem.Text == "Membership")
        {
            SqlConnection con = new
      SqlConnection(ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ToString());
            con.Open();
            SqlDataAdapter adapter = new SqlDataAdapter("select p.Name,m.FID,m.MembNo,m.MembType,m.Validity,m.Remarks,m.Organisation,m.UpdateDate from Membership_det m INNER JOIN Personal_det p  ON m.FID= p.FID where m.updateDate  between @Start and @End ", con);
            adapter.SelectCommand.Parameters.Add("@Start", SqlDbType.Date).Value = startDate;
            adapter.SelectCommand.Parameters.Add("@End", SqlDbType.Date).Value = endDate;
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            con.Close();
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
        log.Debug("Info: Admin viewed the membership details");
    }

现在在gridview我有UpdateDate列显示日期时间,因为在数据库中我将​​其存储为Datetime,而不是Datetime我需要仅显示Date ie而不是此11/23/2013 12:00:00 AM我需要此11/23/2013。 任何建议都表示赞赏。据我所知,data source binding可以在aspx页面中完成,但我只需要c#上的代码。

在aspx中

  <asp:GridView ID="GridView1" runat="server" RowStyle-HorizontalAlign="Center"></asp:GridView>

4 个答案:

答案 0 :(得分:1)

您可以通过访问gridview的Updated Date列,在GridView RowDataBound事件上使用Tostring(“MM / dd / yyyy”)。

答案 1 :(得分:0)

  1. 您可以手动创建网格列,并将DataFormatString列的UpdateDate设置为所需的值。
  2. 您可以为GridView s ColumnsGenerator属性创建一个类。在生成UpdateDate列时,您可以设置DataFormatString

答案 2 :(得分:0)

请使用ToShortDateString()方法将DateTime转换为短日期格式。

更好地使用SQLDataAdopter对象的SQLDataReader对象;

   SqlDataReader dr=cmd.ExecuteReader();

使用dr.getstring('Column-No')逐行填充datagridview,并将其添加到Datatable / Gridview Row,这是一种方法;

否则使用以下替代方法:


使用DataAdopter本身:

  1. 拿另一张桌子(DataTable)xxx
  2. 从DataTable 1(已经填充)将其传输到Datatable2(xxx)
  3. 在转移之间,只需通过DateTime.ToShortDateString()方法更改Dateformat。
  4. 最后更改DataGridview.datasource = DataTable2(xxx);

答案 3 :(得分:0)

RowDataBound 11/23/2013 12:00:00 AM

 void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
  //change the value to `string x = dt.ToString("MM-dd-yyyy");`
     if(e.Row.RowType == DataControlRowType.DataRow)
    {

     // string time = ((Label)e.Row.FindControl("UpdateDate")).Text;
      string time =Convert.ToString(e.Row.Cells[7].Text);
      e.Row.Cells[7].Text =time.ToString("MM-dd-yyyy");`

    }
}

<强>更新

如果您的手机号码根据您选择的值更改,那么更好的方法是在aspx检查herehere中对其进行格式化,或者您可以在query中对其进行格式化。