如何动态地将数据添加到datatable(Gridview)中

时间:2014-05-20 06:39:52

标签: c# asp.net gridview datatable

我想如何将数据添加到datatable中并更改" Date"的dataformatString。柱 enter image description here

Q1。如何将数据格式更改为" dd / MM / yyyy"或使用您的方法显示
Q2。我已经在page_load事件中添加了添加数据键的代码:[" RowID"],但是当我点击"编辑"按钮,它提示"对象引用未设置为对象的实例",如何获取datakey值/添加commandArguement到"编辑" /"删除"按钮
Q3。当我点击"编辑"按钮,如何更改为编辑模式,更新,取消按钮等进行编辑,

我希望有人可以帮助我,非常感谢你!!!

评论:"编辑&删除按钮添加在.aspx中,而非动态"

的.cs

protected void Page_Load(object sender, EventArgs e){
if (!IsPostBack) {
        GridView gv = (GridView)Page.FindControl("GridView1");
        gv.DataKeyNames = new string[] { "RowID" };
    }
}

protected void btn_Click(object sender, EventArgs e){
  getDT(date);  //string []date;
}

private DataTable getDT(string[] date){
    DataTable dt = new DataTable();

    dt.Columns.Add("RowID", typeof(Int16));
    dt.Columns.Add("Date", typeof(DateTime));

    for (int i = 0; i < date.Length; i++) {
        dt.Rows.Add(i + 1, date[i]); //date[i] format:yyyy-mm-dd or dd/MM/yyyy
    } 
    return dt;
}

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) {
    if (e.CommandName == "Delete"){
       hf_id.Value = GridView1.DataKeys[0].Value.ToString();
    }
}

2 个答案:

答案 0 :(得分:2)

从指定链接下载源代码并研究它将对您有所帮助。您的要求很简单,但是必须具备基本知识。

http://www.codeproject.com/Articles/23471/Editable-GridView-in-ASP-NET

答案 1 :(得分:0)

这是正确的..但我想成为这个没有使用数据库..我做了一切..现在我想要 如果我单击单元格,以便数据在gv中更新,但它没有显示datatable ..所以我想采取刷新按钮.. 如果我点击这个,那么数据应该在数据表上更新.. 我发送这样的代码......

设计页面

    

GridView的

                                                                

代码---

    protected void Page_Load(object sender, EventArgs e){
        if (!this.IsPostBack) {
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("City") });

            dt.Rows.Add(1, "Anamika", "Bangalore");
            dt.Rows.Add(2, "Sunny", "Chennai");
            dt.Rows.Add(3, "Monika", "Bangalore");
            dt.Rows.Add(4, "Jyoti", "Chennai");
            dt.Rows.Add(5, "Radhika", "Jabalpur");
            dt.Rows.Add(6, "Imran", "Jammu");
            dt.Rows.Add(7, "Alok", "Delhi");
            dt.Rows.Add(8, "Amit", "Shamshabad");
            dt.Rows.Add(9, "Neetu", "Bhopal");
            dt.Rows.Add(10, "Jyoti", "Chennai");
            dt.Rows.Add(11, "Radhika", "Vidisha");
            dt.Rows.Add(10, "Pooja", "Pune");

            gridview1.DataSource = dt;
            gridview1.DataBind();
        }
    } 

    protected void gridview1_OnRowDataBound(object sender, GridViewRowEventArgs e) {
        if (e.Row.RowType == DataControlRowType.DataRow) {
            for (int i = 0; i < e.Row.Cells.Count; i++) {                 
                TextBox txt = new TextBox();
                txt.Text = e.Row.Cells[i].Text;                 
                e.Row.Cells[i].Text = "";
                e.Row.Cells[i].Controls.Add(txt);
            }
        }
    }
}