2016-07-27 5 views
0

Ich bin mit Kendo UI Listview mit SignalR meiner Anwendung ASP.Net MVC wie unten Codebeispiel:Wie übergebe ich die Parameter zum Lesen der Methode für Kendo ui listview mit SignalR?

CSHTML Code:

@(Html.Kendo().ListView<TestApp.Models.testViewModel>() 
     .Name("LVTest") 
     .TagName("div") 
     .ClientTemplateId("templateTest") 
     .DataSource(dataSource => dataSource 
      .SignalR() 
      .Transport(tr => tr 
        .Promise("hubStart") 
        .Hub("testHub") 
        .Client(c => c.Read("test_Read")) 
        .Server(s => s.Read("test_Read")) 
        ) 
      .Schema(schema => schema 
        .Model(m => { m.Id(p => p.Id); }) 
       ) 
      ) 
     ) 

HUB Code:

public IEnumerable<TestViewModel> Test_Read(string CurrencyId) 
    { 
     var queryResult = TestRepository.Test_Read(CurrencyId); 
     return queryResult; 
    } 

Ich möchte Übergeben Sie hier die CurrencyId als Parameter an die read-Methode. Ich kann dies erreichen, indem ich die .Data-Methode der Datenquelle für die Ajax-Bindung verwende, aber dies muss erreicht werden, indem SignalR angezeigt wird. Wie kann ich den Parameter an die Lesemethode herre übergeben?

+0

du sehen? http://www.telerik.com/forums/how-to-pass-parameter-to-grid-signalr-read-data-source-method –

+1

Ich habe dieses Forum gesehen und die Demo überprüft, die in diesem gegeben wird, aber es ist für Ausfiltern der Daten nach dem Lesemethode Abrufen der Daten. In meinem Fall muss ich den spezifischen Wert an die read-Methode übergeben und basierend auf dem an die read-Methode übergebenen Parameter werden die Daten abgerufen und dem listview-Steuerelement angezeigt. – giparekh

+0

Bist du zu einer Lösung dafür gekommen? – werdsackjon

Antwort

0

die Lösung mit parameterMap gefunden, wie unten:

CSHTML Code

<script> 
function customParameterMap(data, operation) { 
    var selectedEmpId = $("#ddlEmp").data("kendoDropDownList").value(); 
    if (operation === "read") { 
     data.selectedEmpId = selectedEmpId; 
    } 
    return data; 
} 

@(Html.Kendo().ListView<TestApp.Models.testViewModel>() 
    .Name("LVTest") 
    .TagName("div") 
    .ClientTemplateId("templateTest") 
    .DataSource(dataSource => dataSource 
     .SignalR() 
     .Transport(tr => tr 
       .ParameterMap("customParameterMap") 
       .Promise("hubStart") 
       .Hub("testHub") 
       .Client(c => c.Read("test_Read")) 
       .Server(s => s.Read("test_Read")) 
       ) 
     .Schema(schema => schema 
       .Model(m => { m.Id(p => p.Id); }) 
      ) 
     ) 
    ) 

HUB Code

public class ReadRequestData 
{ 
    public string selectedEmpId { get; set; } 
} 

public IEnumerable<TestViewModel> Test_Read(ReadRequestData data) 
{ 
    string EmpId = data.selectedEmpId; 
    var queryResult = TestRepository.Test_Read(EmpId); 
    return queryResult; 
} 
Verwandte Themen