在ASPxGridView中,新增和编辑数据调用的都是同一个EditForm,但实际使用中经常遇到新增数据的列与可编辑的列不同。解决方案如下。

    protected void ASPxGridView1_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e)
 
    {
 
        //贷款类型
 
        GridViewDataComboBoxColumn gdc_DKLX = ASPxGridView1.Columns["DKLX"] as GridViewDataComboBoxColumn;
 
        //录入人
 
        GridViewDataTextColumn gdc_LRR = ASPxGridView1.Columns["LRR"] as GridViewDataTextColumn;
 
        //录入时间
 
        GridViewDataTextColumn gdc_LRSJ = ASPxGridView1.Columns["LRSJ"] as GridViewDataTextColumn;
 
        if (ASPxGridView1.IsNewRowEditing)
 
        {
 
            //贷款类型
 
            gdc_DKLX.EditFormSettings.Visible =DevExpress.Web.ASPxClasses.DefaultBoolean.True;
 
            //录入人
 
            gdc_LRR.EditFormSettings.Visible = DevExpress.Web.ASPxClasses.DefaultBoolean. True;
 
            //录入时间
 
            gdc_LRSJ.EditFormSettings.Visible = DevExpress.Web.ASPxClasses.DefaultBoolean. True;
 
        }
 
}
    protected void ASPxGridView1_StartRowEditing(object sender, DevExpress.Web.Data.ASPxStartRowEditingEventArgs e)
 
    {
 
        //贷款类型
 
        GridViewDataComboBoxColumn gdc_DKLX = ASPxGridView1.Columns["DKLX"] as GridViewDataComboBoxColumn;
 
        //录入人
 
        GridViewDataTextColumn gdc_LRR = ASPxGridView1.Columns["LRR"] as GridViewDataTextColumn;
 
        //录入时间
 
        GridViewDataTextColumn gdc_LRSJ = ASPxGridView1.Columns["LRSJ"] as GridViewDataTextColumn;
 
        if (!ASPxGridView1.IsNewRowEditing)
 
        {
 
            //贷款类型
 
            gdc_DKLX.EditFormSettings.Visible = DevExpress.Web.ASPxClasses.DefaultBoolean. True;
 
            //录入人
 
            gdc_LRR.EditFormSettings.Visible = DevExpress.Web.ASPxClasses.DefaultBoolean.False;
 
            //录入时间
 
            gdc_LRSJ.EditFormSettings.Visible = DevExpress.Web.ASPxClasses.DefaultBoolean.False;
 
        }
 
    }

在新建行和编辑行之前进行判断,并重新设置EditForm中的列的可见性即可。

cafe.wh 6,29 2010