【发布时间】:2015-09-15 00:46:51
【问题描述】:
我在选择行并将键发送到控制器时出错。
在按钮点击事件的萤火虫中,它会显示类似这样的错误
Uncaught TypeError: Cannot read property 'selectionColumn' of undefined
这是我的view 代码。很简单gridview
<?= Button::widget([
'label' => 'Message',
'options' => ['class' => 'btn-danger','id' => 'message'],
]);
?>
</p>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'showOnEmpty'=>true,
'columns' => [
['class' => 'yii\grid\CheckboxColumn'],
[
'attribute' => 'event_id',
'label' => 'Event Title',
'value' => 'event.title'
],
[
'attribute' => 'fullName',
'label' => 'Name',
'value' => 'users.fullname',
],
],
]);
?>
这是我用于onclick 事件的脚本
$script = '
jQuery(document).ready(function() {
btnCheck = $("#message");
btnCheck.click(function() {
var keys = $("#w1").yiiGridView("getSelectedRows");
alert(keys);
$.ajax({
type: "POST",
url: "'.\yii\helpers\Url::to(['/checkin/message']).'",
dataType: "json",
data: {keylist: keys}
});
});
});';
$this->registerJs($script, \yii\web\View::POS_END);
这似乎在按钮onclick 事件上不起作用,而不是如果我使用这个脚本它工作正常
$this->registerJs('
$(document).ready(function(){
$("#w1 input[type=checkbox]").click(function(){
var keys = $("#w1").yiiGridView("getSelectedRows");
$.ajax({
type:"POST",
url: "../message", // your controller action
dataType: "json",
data: {keylist: keys},
success: alert(keys)
});
});
});
几乎相同,但在第二个脚本中,每次单击复选框时都会发送 ajax 请求。
我希望用户首先选择行并对按钮单击事件执行操作 希望你能理解 我知道这是非常常见的错误,但我尝试了不同的选项,但似乎都不起作用
谢谢…….
【问题讨论】:
-
你能告诉我们你在哪一行有这个错误吗?
-
@lajosarpad 在每一行.. 我有一个 gridview 和 checkbox 列。我想要做的就是对来自该gridview 的选定数据执行一些操作。现在它不适用于按钮单击事件。如果我使用答案中包含的第二个脚本,它会起作用..
-
我的意思是:源代码中的哪一行。
-
@lajosArpad .click 函数行当我使用
$("#w1 input[type=checkbox]").click(function()时它工作正常但是当我使用btnCheck = $("#message"); btnCheck.click(function()时它不起作用。 -
让我重新表述这个问题:源代码中的哪一行引发了异常?如果您打开浏览器控制台并查看错误,它会引导您查看源代码的哪一行?
标签: javascript gridview yii2 yii2-advanced-app