如何根据额外的参数

时间:2017-01-22 10:14:16

标签: javascript jquery kendo-ui

我有一个针对剑道网格的自定义读取功能....

 public virtual async Task<ActionResult> Read([DataSourceRequest] DataSourceRequest request,
        RecordStatus? recoredStatus){ // code here }

现在我希望通过使用jquery

在kendo中使用记录状态来刷新网格
<script type="text/javascript">
function viewButtonClickHandler(e) {
        alert(e.Id)
        $('#Grid').data('kendoGrid').dataSource.read(e.Id);
        $('#Grid').data('kendoGrid').refresh();

}

但我如何在读取函数中发送此附加参数(recordStatus)!我可以这样做吗?

3 个答案:

答案 0 :(得分:1)

使用纯Java脚本,这就是你如何发送params来读取方法

$('#grid').data('kendoGrid').dataSource.Read({id:e.Id});
$('#Grid').data('kendoGrid').refresh();

在服务器端,你需要这个。

public ActionResult Products_Read([DataSourceRequest] DataSourceRequest request,int id){}

如果您正在使用基于MVC的网格telerik论坛已经有关于如何使用read发送额外参数的示例。

http://www.telerik.com/forums/pass-additional-parameters-to-read-ajax-datasource-method---mvc

enter image description here

答案 1 :(得分:1)

因此,如果您使用的是Kendo MVC UI,则可以将Data属性用于DataSource的Read方法。因此,当您请求读取操作时,将使用 -

执行客户端方法 DataHandlerName
    $('#Grid').data('kendoGrid').dataSource.read();

您可以轻松处理客户端脚本。您的服务器端代码将遵循Kendo GRID,

    .DataSource(dataSource => dataSource.Ajax().ServerOperation(false).Read(r=> r.Action("ActionName","ControllerName").Type(HttpVerbs.Post).Data("DataHandlerName")))

您的客户端代码将是 -

    <script> 
       function DataHandlerName() {
         //your code will goes here 

          var request={
                  id:1
                };
             return request ;
       }
   </script>

你的行动方式将是,

public ActionResult ActionName([DataSourceRequest] DataSourceRequest request,int id){}

答案 2 :(得分:1)

如果我理解正确你就需要这个。还请看一下链接。它可以帮助你。

function onSomeButtonClick(){
grid_.dataSource.read({q:"test"});

}

http://www.telerik.com/forums/how-to-refresh-a-grid-with-parameters-dc0f416ce08a