0

我遇到了问题,一直在网上搜索,但找不到任何可以帮助我的东西。

这是我的问题。我在 WinForm 工作,c#

我有一个网格,其中是GridViewDateTimeColumn类型的 Column 。当用户更新一行时,我在事件RowValidating中检查它,如果我收到重复的日期或其他错误,我会向用户显示一条消息,并且我执行e.cancel = true以不验证该行。但是如果我按ESC。我不能像以前通常那样取消所有更改知道怎么做吗?

这是我的代码:

 private void grdPirteyMenahel_RowValidating(object sender, RowValidatingEventArgs e)
    {
        try
        {
            Cursor.Current = Cursors.WaitCursor;
            if (e.Row != null)
            {

             //Generate a service to connect to DB                  
               var factory = new MezumanimChannelFactory<IKerenService>(ServiceConsts.SERVICE_KEREN);
               var service = factory.CreateChannel();
               string sError = string.Empty;
               //here I call a SP in the database that check if the dates are correct (column of dates are call it "MiTaarich" and "AdTaarich".
               //The SP return a String with the error, if there is no error it will return and empty string

               sError = GetErrorPirteySacharMenahel(Convert.ToDateTime(e.Row.Cells["MiTaarich"].Value), Convert.ToDateTime(e.Row.Cells["AdTaarich"].Value), Convert.ToInt32(e.Row.Cells["Kod"].Value));

                            if (sError != string.Empty)
                            {
                                e.Cancel = true;
                                RadMessageBoxHelper.Alert(sError);
                            }
               }

        }
        catch (Exception ex)
        {

            Elad.Mezumanim.Client.Utils.Log.LogUtil.write(ex);
            e.Cancel = true;
            RadMessageBoxHelper.Alert(Messages.DataDisplayError, this);
        }
        finally
        {
            Cursor.Current = Cursors.Default;
        }
    }

当我收到错误时,我也尝试添加此代码:

 DataTable dt = (grdPirteyMenahel.DataSource as DataTable);
  dt.RejectChanges();

但这恢复了 date 的值,因为它是以前的(什么是好的),但是当我按下 ESC 时并没有让我离开该行

知道如何解决吗?

非常感谢您向 Iair 致以最诚挚的问候

4

1 回答 1

0

好的,我问了 Telerik,他们给了我一个解决方案。它不是一个真正的解决方案,它更像是一个解决方法,但目前它对我有好处。

http://www.telerik.com/community/forums/winforms/gridview/esc-in-gridviewdatetimecolumn-inside-raddatagridview-after-i-did-an-e-cancel-true-in-row-validation.aspx

谢谢艾尔

于 2013-09-09T08:00:39.707 回答