Beispiel #1
0
        pageRecord m_recordPage;         //List with page records

        /// <summary>
        /// This method performs a connection to the server,get the first page
        /// of records and populate the grid with it.
        /// </summary>
        public MainWindow()
        {
            InitializeComponent();
            ChannelFactory <IDataController> dataFactory;
            NetTcpBinding tcpBinding = new NetTcpBinding();


            tcpBinding.MaxReceivedMessageSize      = System.Int32.MaxValue;
            tcpBinding.ReaderQuotas.MaxArrayLength = System.Int32.MaxValue;
            string sURL = "net.tcp://localhost:50001/Data";

            dataFactory = new ChannelFactory <IDataController>(tcpBinding, sURL);

            m_data = dataFactory.CreateChannel();

            string [] columns = m_data.GetColumnNames();

            /*Binds the columns with the name of the fields of the table*/
            foreach (string name in columns)
            {
                DataGridTextColumn textcol = new DataGridTextColumn();
                Binding            b       = new Binding(name);
                textcol.Binding = b;
                textcol.Header  = name;
                dgrdData.Columns.Add(textcol);
            }

            m_recordPage = new pageRecord();
            txtPage.Text = "1";
            UpdateDataGrid(1);
        }
Beispiel #2
0
        /// <summary>
        /// This method performs the validation of number pages, populates the grid with data
        /// and it hides the information that might not be shown(notes, etc)
        /// NOTE: The page has 100 records.
        /// </summary>
        private void UpdateDataGrid(int page)
        {
            int starRow, endRow, numRows;

            starRow = (page - 1) * 100;
            endRow  = (page * 100) - 1;
            numRows = m_data.getNumRows();

            if (endRow > (numRows - 1))
            {
                endRow = (numRows - 1);
            }

            if (starRow >= 0 && starRow < numRows)
            {
                m_recordPage                    = m_data.GetPageRecord(starRow, endRow);
                dgrdData.ItemsSource            = m_recordPage.Records;
                dgrdData.IsReadOnly             = true;
                dgrdData.Columns[4].Visibility  = Visibility.Hidden;
                dgrdData.Columns[5].Visibility  = Visibility.Hidden;
                dgrdData.Columns[7].Visibility  = Visibility.Hidden;
                dgrdData.Columns[8].Visibility  = Visibility.Hidden;
                dgrdData.Columns[10].Visibility = Visibility.Hidden;
                dgrdData.Columns[11].Visibility = Visibility.Hidden;
                dgrdData.SelectedIndex          = 0;

                /*If the number of rows returned by the server is not divisible by 100,
                 * it means that the last page has less records than 100 records. So, it is add 1 at number
                 * pages.*/
                lblTotalPages.Content = numRows % 100 != 0 ? " of " + Convert.ToString((numRows / 100) + 1) : " of " + Convert.ToString((numRows / 100));
                txtPage.Text          = page.ToString();
            }
            else
            {
                MessageBox.Show("This is not a valid page number");
            }
        }