代码如下,问该代码实现了什么功能,这段代码中有些小问题,请找出来!最后是怎样优化它!
public void Fill(DataTable dt, string query, int  pageid, int totalRowsFound)
{
    if (query != this.Text)
        return;
    try {
        Popup._lastSel = -1;
        if (pageid == 1) {
            _dataSource = dt;
            Rebind();
        } else {
            foreach (DataRow row in dt.Rows) {
                _currentView.Table.ImportRow(row);
            }
            if (_grid.Rows.Count > 0 && _grid.Cols.Count > 0) {
                _grid.Select(_grid.Rows.Count - 1, 0);
            }
        }
        if (!Popup.Visible) {
            try {
                if (_currentView.Count == 1) {
                    SelectedValue = ((DataRowView)_grid.Rows(1).DataSource).Row(DataValueField);
                    Popup._selectedText = ((DataRowView)_grid.Rows(1).DataSource).Row(DataTextField);
                    Text = Popup._selectedText;
                    Popup._selectedRow = ((DataRowView)_grid.Rows(1).DataSource).Row;
                    if (SelectedRowChanged != null) {
                        SelectedRowChanged();
                    }
                } else if (_currentView.Count > 0) {
                    foreach (Row row in _grid.Rows) {
                        if (row(DataValueField) == query) {
                            SelectedValue = Row(DataValueField);
                            Popup._selectedText = Row(DataTextField);
                            Text = Popup._selectedText;
                            Popup._selectedRow = ((DataRowView)row.DataSource).Row;
                            if (SelectedRowChanged != null) {
                                SelectedRowChanged();
                            }
                            break;
                        }
                        Text = "";
                        Popup._selectedText = "";
                        SelectedValue = null;
                        Popup._selectedRow = null;
                        if (SelectedRowChanged != null) {
                            SelectedRowChanged();
                        }
                    }
                } else {
                    Text = "";
                    Popup._selectedText = "";
                    SelectedValue = null;
                    Popup._selectedRow = null;
                    if (SelectedRowChanged != null) {
                        SelectedRowChanged();
                    }
                }
            } catch (Exception ex) {
                _processException(ex, "Error setting the value when popup is invisible!");
            }
        }
    } catch (Exception ex) {
        _processException(ex, "Error filling the combo");
    }
    //set the caption
    int many = _grid.Rows.Count - _grid.Rows.Fixed;
    Caption = _fwaTexts.GetRetrievedTextFormat(many, totalRowsFound, this._LastSendGetResult);
 
    Popup.FooterEnabled = true;
}