예제 #1
0
        public void ManyToMany()
        {
            Testpage.Controls.Clear();
               Grid grid = new Grid();

            ManyToMany column = new ManyToMany("column", grid);
            column.MatrixIdentityColumn = "EmployeeID";
            column.MatrixDataSource = "EmployeeTerritories";
            column.Where = "RegionID = 3";
            column.ValueColumn = "TerritoryDescription";
            column.ForeignDataSource = "Territories";
            column.ForeignIdentityColumn = "TerritoryID";
            column.RecordsPerRow = 4;
            column.ManyToManyType = ManyToManyType.Checkboxes;

            ManyToMany column2 = new ManyToMany("column2", grid);
            column2.MatrixIdentityColumn = "EmployeeID";
            column2.MatrixDataSource = "EmployeeTerritories";
            column2.Where = "RegionID = 2";
            column2.ValueColumn = "TerritoryDescription";
            column2.ForeignDataSource = "Territories";
            column2.ForeignIdentityColumn = "TerritoryID";
            column2.ManyToManyType = ManyToManyType.Multiselect;

            grid.MasterTable.Columns.Add(column);
            grid.MasterTable.Columns.Add(column2);

            SetupGrid(grid);
            grid.Mode = Mode.Edit;
            grid.StayEdit = true;
            grid.CurrentId = "4";
            grid.DataSourceId = "Employees";
            grid.ConnectionString = ConnectionAccessOleDb;

            grid.RaisePostBackEvent("RecordUpdateClick!!False");
            StringBuilder sb = new StringBuilder();
            StringWriter sw = new StringWriter(sb);
            HtmlTextWriter gridwriter = new HtmlTextWriter(sw);
            grid.RenderControl(gridwriter);
            Assert.AreEqual(grid.MasterTable.Rows.Count, 1);
            Assert.Greater(column.Items.Count, 1);
            Assert.Greater(column2.Items.Count, 1);
            if (grid.SystemMessage.Count > 2)
                foreach (SystemMessage message in grid.SystemMessage)
                    Console.WriteLine(message.Message);

            //When running bulk tests we get an extra systemmessage because Grid.ID stored in TestPage object.
            Assert.LessOrEqual(grid.SystemMessage.Count, 2); // 15-day license key message
            Assert.AreEqual(grid.Mode, Mode.Edit);

            string[] triggerStrings = new[]
                                          {
                                              "type=\"checkbox\"",
                                              "id=\"cb_wggrid_4_column_01581\"",
                                          "for=\"cb_wggrid_4_column_01581\"",
                                              "type=\"checkbox\" id=\"cb_wggrid_4_column_55439\""
                                          };
            string content = sb.ToString();
            foreach (string part in triggerStrings)
            {
                int res = content.IndexOf(part);
                Assert.Greater(res, -1, part + Environment.NewLine + content);
            }
        }
예제 #2
0
        public void ManyToMany()
        {
            Testpage.Controls.Clear();
            Grid grid = new Grid();

            ManyToMany column = new ManyToMany("column", grid);

            column.MatrixIdentityColumn = "EmployeeID";
            column.MatrixDataSource     = "EmployeeTerritories";
            column.Where                 = "RegionID = 3";
            column.ValueColumn           = "TerritoryDescription";
            column.ForeignDataSource     = "Territories";
            column.ForeignIdentityColumn = "TerritoryID";
            column.RecordsPerRow         = 4;
            column.ManyToManyType        = ManyToManyType.Checkboxes;


            ManyToMany column2 = new ManyToMany("column2", grid);

            column2.MatrixIdentityColumn = "EmployeeID";
            column2.MatrixDataSource     = "EmployeeTerritories";
            column2.Where                 = "RegionID = 2";
            column2.ValueColumn           = "TerritoryDescription";
            column2.ForeignDataSource     = "Territories";
            column2.ForeignIdentityColumn = "TerritoryID";
            column2.ManyToManyType        = ManyToManyType.Multiselect;

            grid.MasterTable.Columns.Add(column);
            grid.MasterTable.Columns.Add(column2);

            SetupGrid(grid);
            grid.Mode             = Mode.Edit;
            grid.StayEdit         = true;
            grid.CurrentId        = "4";
            grid.DataSourceId     = "Employees";
            grid.ConnectionString = ConnectionAccessOleDb;


            grid.RaisePostBackEvent("RecordUpdateClick!!False");
            StringBuilder  sb         = new StringBuilder();
            StringWriter   sw         = new StringWriter(sb);
            HtmlTextWriter gridwriter = new HtmlTextWriter(sw);

            grid.RenderControl(gridwriter);
            Assert.AreEqual(grid.MasterTable.Rows.Count, 1);
            Assert.Greater(column.Items.Count, 1);
            Assert.Greater(column2.Items.Count, 1);
            if (grid.SystemMessage.Count > 2)
            {
                foreach (SystemMessage message in grid.SystemMessage)
                {
                    Console.WriteLine(message.Message);
                }
            }

            //When running bulk tests we get an extra systemmessage because Grid.ID stored in TestPage object.
            Assert.LessOrEqual(grid.SystemMessage.Count, 2); // 15-day license key message
            Assert.AreEqual(grid.Mode, Mode.Edit);

            string[] triggerStrings = new[]
            {
                "type=\"checkbox\"",
                "id=\"cb_wggrid_4_column_01581\"",
                "for=\"cb_wggrid_4_column_01581\"",
                "type=\"checkbox\" id=\"cb_wggrid_4_column_55439\""
            };
            string content = sb.ToString();

            foreach (string part in triggerStrings)
            {
                int res = content.IndexOf(part);
                Assert.Greater(res, -1, part + Environment.NewLine + content);
            }
        }