日期:2014-05-17  浏览次数:20475 次

datatable 回发后自动清空?
    
    DataTable myda = new DataTable()

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
         
            DataColumn datacol = myda.Columns.Add("UnitName");
            datacol.DataType = Type.GetType("System.String");
            datacol = myda.Columns.Add("ProjCharger");
            datacol.DataType = Type.GetType("System.String");
            ViewState["table"] = myda;
            grid.DataSource = myda;
            grid.DataBind();
            this.grid.KeyFieldName = "UnitName";
        }
        
    }
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
     
        grid.AddNewRow();
       
    }

    protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)  //插入事件
    {

        myda = (DataTable)ViewState["table"];
        DataRow darow = myda.NewRow();
        darow[0] = e.NewValues[0].ToString();
        darow[1] = e.NewValues[1].ToString();
       
        myda.Rows.Add(darow);
        grid.DataSource = myda;
        grid.DataBind();
       ViewState["table"] = myda;
        grid.CancelEdit();
        e.Cancel = true;
    }


为什么我每次插入记录之后就自动把之前的清空了呢,我明明用viewstate了啊

------解决方案--------------------
跟Viewstate有什么关系?你定义一个变量,每次回发时自然就是初始化的。这是web,不是winform。
------解决方案--------------------
如果你一定要滥用ViewState,那么可以写

    protected void Page_Load(object sender, EventArgs e)
&nb