1

这是我的 QDataGrid

    $this->content = new QDataGrid($this, 'Dashboard');
    $this->dtgContent->UseAjax = true;
    $this->dtgContent->ShowFilter = true;
    $this->dtgContent->RowActionParameterHtml = '<?= $_ITEM->FileNum ?>';
    $this->dtgContent->SetDataBinder('BindDataGrid_Content', $this);
    $this->dtgContent->Paginator = new QPaginator($this->dtgContent);
    $this->dtgContent->ItemsPerPage = 15;
    $this->dtgContent->SortColumnIndex = 5;
    $this->dtgContent->SortDirection = true;

然后我正在创建 2 个 QDataGridColumns

    $col = new QDataGridColumn('First', '<?= $_CONTROL->ParentControl->renderFirst($_ITEM) ?>');
    $col->HtmlEntities = false;
    $col->OrderByClause = QQ::OrderBy(QQN::Appfile()->CfgfilevehicleAsFileNum->VehicleIdObject->Vin);
    $col->ReverseOrderByClause = QQ::OrderBy(QQN::Appfile()->CfgfilevehicleAsFileNum->VehicleIdObject->Vin, false);
    $col->Filter = QQ::Like(QQN::Appfile()->CfgfilevehicleAsFileNum->VehicleIdObject->Vin, null);
    $col->FilterType = QFilterType::TextFilter;
    $col->FilterPrefix = $col->FilterPostfix = '%';
    $col->Width = 170;
    $this->dtgContent->AddColumn($col);

    $col = new QDataGridColumn('Year', '<?= $_ITEM->CfgfilevehicleAsFileNum->VehicleIdObject->Year ?>');
    $col->FilterType = QFilterType::TextFilter;
    $col->Filter = QQ::Like(QQN::Appfile()->CfgfilevehicleAsFileNum->VehicleIdObject->Year, null);
    $col->FilterPostfix = $col->FilterPrefix = '%';
    $col->OrderByClause = QQ::OrderBy(QQN::Appfile()->CfgfilevehicleAsFileNum->VehicleIdObject->Year);
    $col->ReverseOrderByClause = QQ::OrderBy(QQN::Appfile()->CfgfilevehicleAsFileNum->VehicleIdObject->Year, false);
    $col->Width = 50;
    $this->dtgContent->AddColumn($col);

在刷新页面时,如何将光标自动聚焦到“第一”的文本框。

4

3 回答 3

0

在 QCubed 中,QForm 类的 Form_Create 方法在页面刷新期间执行。(Form_Run 在刷新和 ajax 调用上都执行)。

看起来您使用的是 QCubed 的旧 v2,因此您可以在定义数据网格和列之后在 Form_Create 函数中执行此操作:

$filterId = 'ctl' . $this->dtgContent->ControlId . 'flt0';
$this->GetControl($filterId)->Focus();

$filterId 应该是 First 字段的 javascript id。通过查看 html 进行仔细检查。$this 是表单对象。

于 2017-02-24T18:05:29.217 回答
0

可以这样轻松完成,只需将名称更改colcol1

$col1 = new QDataGridColumn('First', '<?= $_CONTROL->ParentControl->renderFirst($_ITEM) ?>');
$col1->HtmlEntities = false;
$col1->OrderByClause = QQ::OrderBy(QQN::Appfile()->CfgfilevehicleAsFileNum->VehicleIdObject->Vin);
$col1->ReverseOrderByClause = QQ::OrderBy(QQN::Appfile()->CfgfilevehicleAsFileNum->VehicleIdObject->Vin, false);
$col1->Filter = QQ::Like(QQN::Appfile()->CfgfilevehicleAsFileNum->VehicleIdObject->Vin, null);
$col1->FilterType = QFilterType::TextFilter;
$col1->FilterPrefix = $col->FilterPostfix = '%';
$col1->Width = 170;
$this->dtgContent->AddColumn($col1);

然后,

    $ctrFilter = $this->dtgContent->GetFilterControl($col1);
    $ctrFilter->Focus();
于 2017-02-28T13:08:12.553 回答
0
<script>
     $( "#target" ).focus();
</script>
于 2017-02-24T12:11:19.193 回答