diff --git a/framework/grid/DataColumn.php b/framework/grid/DataColumn.php
index <HASH>..<HASH> 100644
--- a/framework/grid/DataColumn.php
+++ b/framework/grid/DataColumn.php
@@ -51,7 +51,7 @@ class DataColumn extends Column
     public $label;
     /**
      * @var string|\Closure an anonymous function that returns the value to be displayed for every data model.
-     * The signature of this function is `function ($model, $index, $widget)`.
+     * The signature of this function is `function ($model, $key, $index, $widget)`.
      * If this is not set, `$model[$attribute]` will be used to obtain the value.
      *
      * You may also set this property to a string representing the attribute name to be displayed in this column.
@@ -176,7 +176,7 @@ class DataColumn extends Column
             if (is_string($this->value)) {
                 return ArrayHelper::getValue($model, $this->value);
             } else {
-                return call_user_func($this->value, $model, $index, $this);
+                return call_user_func($this->value, $model, $key, $index, $this);
             }
         } elseif ($this->attribute !== null) {
             return ArrayHelper::getValue($model, $this->attribute);
Add $key to function parameter

I think it's better to enclose `$key` as function parameter.