1

クリックするとドロップダウンリストが表示されるチェックボックスがあります。私は彼らに位置を変えてもらいたいだけです。

問題は、php を使用して位置を変更すると、ajax エラーがスローされることです。それぞれが動的な div id で呼び出されるため、実際に CSS を使用して変更することはできません。

CSSでnth-childを使用してトップマージンを作成することだけを検討しましたが、それもうまくいきませんでした。

現在、チェック ボックスはドロップダウンの可視性を切り替えますが、チェック ボックスはドロップダウンが表示される場所の下にあります。別のアプローチは、何らかの形でjavascriptを使用することだと思います...何か不足していますか? 注文を交換できない理由

    $ret['reclength'] = new QListBox($objParent);
    $ret['length']->Name = _sp('Item Name');

    $ret['length']->AddItem("weekly", "7");
    $ret['length']->AddItem("bi-weekly","14" );
    $ret['length']->AddItem("Monthly","30" );
    $ret['length']->Display=false;      

    $ret['checkbox'] = new QCheckbox($objParent);
    $ret['checkbox']->Name = _sp('checkbox name');
    $ret['checkbox']->AddAction(new QClickEvent(), new QToggleDisplayAction($ret['length']));

    return $ret;
4

2 に答える 2

0

レンダリングの順序は、コントロールの親(この場合は$ objParent)によって異なります。$ objParentがQFormの場合、QFormsテンプレートで順序を切り替える必要があります。ただし、あなたが目撃している動作では、$objParentがQPanelであると想定しています。その場合は、QPanelにテンプレートを追加し、そのテンプレートで必要な順序でコントロールをレンダリングする必要があります。AutoRenderChildren = trueを試すこともできますが、これにより、コントロールはQPanelの子として委任された順序でレンダリングされます。

CSSを使用して配置するには、コントロールにIDを追加することをお勧めします。そうすれば、CSSでそれを参照し、セレクターのあいまいさを回避できます。次のようなコンストラクターに2番目のパラメーターを追加する必要があります

$ret['reclength'] = new QListBox($objParent, "myControlId");

myControlIdがページに対して一意であることを確認してください。次に、#myControlIdを使用してcssでアクセスできます。

動作する可能性のある別のオプションは、QListBoxコントロールをインスタンス化するときに親を$ thisに設定し、QCheckboxをインスタンス化した後、QListBoxの親を$objParentに設定することです。これはテストしていませんが、動作するはずです。QCubedExamplesサイトで実際のQFormsの例を見ることができません。コードは次のようになります。これはテストされていませんが、機能するはずです。

$ret['reclength'] = new QListBox($this);
$ret['length']->Name = _sp('Item Name');

$ret['length']->AddItem("weekly", "7");
$ret['length']->AddItem("bi-weekly","14" );
$ret['length']->AddItem("Monthly","30" );
$ret['length']->Display=false;      

$ret['checkbox'] = new QCheckbox($objParent);
$ret['checkbox']->Name = _sp('checkbox name');
$ret['checkbox']->AddAction(new QClickEvent(), new QToggleDisplayAction($ret['length']));

$ret['reclength']->SetParentControl($objParent);

return $ret; 
于 2013-02-06T13:47:05.167 に答える
0

テンプレート ファイルがどのように見えるかわかりません。正しく並べ替えると、表示される順序が変わるため、順序が正しくない可能性があります。しかし、それがなくても、それらを注文することについて何かをすることができます. z-indexを使用して、Css クラスを QListbox に追加するだけです。

$ret['length']->CssClass = "mydropdown";

そしてこれをCSSに:

.mydropdown {
    z-index: 9999;
}

しかし、 z-indexには IE6/7 のバグもあります

于 2012-11-26T08:08:04.127 に答える