草庐IT

c# - DevExpress DataBinding,添加新记录

coder 2024-06-19 原文

我在我的 winform 应用程序中使用 DevExpress,我有一个 gridview、数据输入表单、datanavigator,都绑定(bind)到数据集。

我想添加新记录,如果使用 datanavigator“Add”效果很好,如何使用“New Record”按钮做同样的事情?

BindingSource.AddNew() 

不起作用,它通常起作用,但是对于 devexpress 它不起作用。

最佳答案

如果你想使用绑定(bind)然后使用你的对象绑定(bind)源..

并使用绑定(bind)列表.AddingNew += new AddingNewEventHandler(listOfParts_AddingNew); 添加新实体对象的事件..

请参阅 MSDN 上的 BindingList 示例.

void listOfParts_AddingNew(object sender, AddingNewEventArgs e)
        {
            e.NewObject = new Part(textBox1.Text, int.Parse(textBox2.Text));

        }

与类型化数据源等相比,DevExpress WinForm 控件对绑定(bind)源的处理速度如此之快...您可以使用这些示例实现绑定(bind)源..

将 gridview 和相关控件数据源设置为您创建的 bindsouce... 使用此 MSDN 示例处理您的表单。

看看这个代码片段..也许你会从中得到一些想法..

private void BindingLIstDemo_Load(object sender, EventArgs e)
        {
            InitializeListOfEmployees();
            BindlstEmp();
            listofEmp.AddingNew += new AddingNewEventHandler(listOfEmp_AddingNew);
            listofEmp.ListChanged += new ListChangedEventHandler(listofEmp_ListChanged);

        }

        private void BindlstEmp()
        {
            lstEmpList.Items.Clear();
            lstEmpList.DataSource = listofEmp;
            lstEmpList.DisplayMember = "Name";

        }

        void listofEmp_ListChanged(object sender, ListChangedEventArgs e)
        {
            MessageBox.Show(e.ListChangedType.ToString());
                //throw new NotImplementedException();
        }

        //declare list of employees
        BindingList<Emp> listofEmp;
        private void InitializeListOfEmployees()
        {

            //throw new NotImplementedException();
            // Create the new BindingList of Employees.
            listofEmp = new BindingList<Emp>();

            // Allow new Employee to be added, but not removed once committed.
            listofEmp.AllowNew = true;
            listofEmp.AllowRemove = true;

            // Raise ListChanged events when new Employees are added.
            listofEmp.RaiseListChangedEvents = true;

            // Do not allow Employee to be edited.
            listofEmp.AllowEdit = false;

            listofEmp.Add(new Emp(1, "Niranjan", 10000));
            listofEmp .Add (new Emp (2,"Jai", 8000));

          }


        // Create a new Employee from the text in the two text boxes.
        void listOfEmp_AddingNew(object sender, AddingNewEventArgs e)
        {
            e.NewObject = new Emp (Convert.ToInt32(txtId.Text), txtName.Text,Convert.ToInt32(txtSalary.Text));

        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            Emp empItem = listofEmp.AddNew();
            txtId.Text = txtName.Text = txtSalary.Text = "";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form1 obj = new Form1();
            obj.Show();
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            var sg = (from sc in listofEmp.ToList<Emp>() where sc.Name == ((Emp)lstEmpList.SelectedValue).Name select sc);





        }

        private void lstEmpList_SelectedIndexChanged(object sender, EventArgs e)
        {
            Emp se = listofEmp[lstEmpList.SelectedIndex];
            txtId.Text = se.Id.ToString();
            txtName.Text = se.Name;
            txtSalary.Text = se.Salary.ToString();

        }

这里我用的是BindingList作为数据源 BindingList<Emp> listofEmp;并在列表框控件中显示记录列表的位置......但都一样......用你的gridview试试这个......

关于c# - DevExpress DataBinding,添加新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8177896/

有关c# - DevExpress DataBinding,添加新记录的更多相关文章

  1. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

    当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

  2. ruby - 将 Bootstrap Less 添加到 Sinatra - 2

    我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它

  3. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  4. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  5. ruby-on-rails - Rails 5 Active Record 记录无效错误 - 2

    我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa

  6. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  7. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

  8. ruby - 可以通过多少种方法将方法添加到 ruby​​ 对象? - 2

    当谈到运行时自省(introspection)和动态代码生成时,我认为ruby​​没有任何竞争对手,可能除了一些lisp方言。前几天,我正在做一些代码练习来探索ruby​​的动态功能,我开始想知道如何向现有对象添加方法。以下是我能想到的3种方法:obj=Object.new#addamethoddirectlydefobj.new_method...end#addamethodindirectlywiththesingletonclassclass这只是冰山一角,因为我还没有探索instance_eval、module_eval和define_method的各种组合。是否有在线/离线资

  9. ruby - 如何在 Ruby 中向现有方法定义添加语句 - 2

    我注意到类定义,如果我打开classMyClass,并在不覆盖的情况下添加一些东西我仍然得到了之前定义的原始方法。添加的新语句扩充了现有语句。但是对于方法定义,我仍然想要与类定义相同的行为,但是当我打开defmy_method时似乎,def中的现有语句和end被覆盖了,我需要重写一遍。那么有什么方法可以使方法定义的行为与定义相同,类似于super,但不一定是子类? 最佳答案 我想您正在寻找alias_method:classAalias_method:old_func,:funcdeffuncold_func#similartoca

  10. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

随机推荐