[英]Yii2 Get Value of Each GridView Row on Button Click (Get Multiple Values on One Button Click)
[英]Get selected row in Gridview yii2 selectioncolumn undefined error
選擇行並將密鑰發送給控制器時出現錯誤。
在螢火蟲上的按鈕單擊事件中,它顯示類似以下的錯誤
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請求。
我希望用戶首先選擇行並對按鈕單擊事件進行操作希望您理解我知道它非常常見的錯誤,但是我嘗試了不同的選項,但似乎都沒有用
謝謝.......
當您看到錯誤消息時,首先應該檢查它所在的行。 在那里,您將找到最重要的信息。 在我們的例子中,這是問題所在的代碼行:
var keys=$("#w1").yiiGridView("getSelectedRows");
在這里,您的代碼搜索了一個ID為w1
的元素,並yiiGridView
命名了yiiGridView
。 在函數內部的某個地方,引用了selectioncolumn
,但是沒有正確初始化其成員被引用的元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.