Widget with css file
Widget with css file
Is style2d.css present under the /assets directory?
Also examine source code in the browser.
It’s safe to delete all content under /assets, it will be regenerated. (The browser cache may also need to be cleared.)
/Tommy
Make sure your .css file is not under any subfolder, as u stated.
Try this:
protected function registerClientScript() {
$assetUrl = CHtml::asset(dirname(__FILE__).DIRECTORY_SEPARATOR);
$cs = Yii::app()->getClientScript();
$cs->registerCssFile($assetUrl.'style2d.css');
}
Kindly put any code inside the code block while posting. (its <> in the toolbar).
put your widget call inside the view _hellopart and call renderPartial like this:
public function actionHello(){
if(Yii::app()->request->isAjaxRequest) {
$data = array();
$data["myValue"] = "I am coming from AJAX call!";
$this->renderPartial('_hellopart', $data, false, true);
} else {
$data = array();
$data["myValue"] = "Intial Content loaded-";
$this->render('hello', $data); }
}
let me check ur code again,
Btw, u should write the full path to the widget class if not in the same folder like this:
$this->widget('application.components.Logan');
//NOT
$this->widget('Logan');
check u have got the correct path.
u see styles from with .css files works only if the .css file is registered inside the <head> tag.
Now u are doing a renderPartial() through AJAX and there registering the .css file. so, whats happening is, the .css file got registerd BUT its outside the <head> tag, with the data returned via AJAX call. Thus the styles are not applied.
U can do a check like this: call your widget in the hello.php, its is rendered using render() so the .css will get registered in the head & will style the elements.
What u can do is either place the styles within the view file or in some other .css file which loads with the page.
Also i found u gave wrong class name to the <div> in the widget logan.php view file.
//In the style2d.css its
div.dtlHrd{ ... }
//whereas in ur view its
<div class="dtlHdr"> ... </div>
don’t forget to clear ur asstes folder first.
Cheers