Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Qcodo元件的开关位置_Php_Javascript_Css_Qcodo - Fatal编程技术网

Php Qcodo元件的开关位置

Php Qcodo元件的开关位置,php,javascript,css,qcodo,Php,Javascript,Css,Qcodo,我有一个复选框,单击该复选框会显示一个下拉列表。我只是想让他们改变立场 问题是,当我使用php更改位置时,它会抛出一个ajax错误。因为每一个都是在动态div id中调用的,所以我不能真正使用CSS来更改它 我曾经研究过在css中使用第n个子元素来创建一个上边距,但也没有运气 现在,该复选框切换下拉列表的可见性,但该复选框位于下拉列表显示位置的下方。我想另一种方法是以某种方式使用javascript。。。我错过什么了吗?为什么不能交换订单 $ret['reclength'] = new

我有一个复选框,单击该复选框会显示一个下拉列表。我只是想让他们改变立场

问题是,当我使用php更改位置时,它会抛出一个ajax错误。因为每一个都是在动态div id中调用的,所以我不能真正使用CSS来更改它

我曾经研究过在css中使用第n个子元素来创建一个上边距,但也没有运气

现在,该复选框切换下拉列表的可见性,但该复选框位于下拉列表显示位置的下方。我想另一种方法是以某种方式使用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;

我不确定你的模板文件是什么样子的,可能是出了问题,因为在那里正确地排序会改变它的显示顺序。但即使没有这些,你也可以做点什么来订购它们。只需使用Css类并将其添加到QListbox:

$ret['length']->CssClass = "mydropdown";
这就是CSS:

.mydropdown {
    z-index: 9999;
}

但是IE6/7也有一个bug,它的呈现顺序取决于你的控件父控件,在你的例子中是$objParent。如果$objParent是QForm,那么您只需要在QForms模板中切换它们的顺序。然而,对于您看到的行为,我假设$objParent是一个QPanel。如果是这种情况,则需要将模板添加到QPanel,并按照所需的顺序在该模板中呈现控件。您可以尝试AutoRenderChildren=true,但这将按照控件作为QPanel的子控件进行委托的顺序呈现控件

要使用CSS定位,您可能需要向控件添加一个id。这样,您可以在CSS中引用它,并避免选择器中的任何歧义。只需向构造函数添加第二个参数,如

$ret['reclength'] = new QListBox($objParent, "myControlId");
只需确保myControlId对于页面是唯一的。然后您可以使用#myControlId在css中访问

另一个可行的选项是在实例化QListBox控件时将父项设置为$this,然后在实例化QCheckbox之后将QListBox的父项设置为$objParent。还没有测试过这个,但它应该可以工作。您可以在上看到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;