2017-03-02 6 views
1

In meiner Webanwendung verwende ich asp.net mvc5 und angular1.5. Alle Ansichten werden teilweise mit Ui-View gerendert. Ich muss DevExpress-Reporting mit mvc5 und angular js integrieren. Hat jemand Idee, wie ich DevExpress Bericht mit mvc5 und angularjs 1.5 integrieren kann.DevExpress-Bericht mit MVC und Winkel js

Antwort

1

Dieser Ansatz hilft Ihnen bei der dynamischen Auswahl von Berichten und Daten. Ich habe es versucht.

Winkelansicht.

<div ng-app="DemoApp" ng-controller="DemoController"> 
    <table style="width:100%;height:100%;"> 
    <tr> 
     <td style="background-color:gray;width:20%;vertical-align: top;text-align: left;"> 
     <h3>Select report tamplates</h3> 
      <ul> 
       <li ng-repeat="r in reports"><h6 ng-click="reportSelected(r.type)">{{r.type}}</h6></li> 
      </ul> 
     </td> 
     <td style="background-color:forestgreen;"> 
      <iframe src="/Home/Index" style="width:100%;height:800px" id="viewer"></iframe> 
     </td> 
    </tr> 
    </table> 
</div> 

Heimsteuerung.

public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
//i am getting some parameter from angular by query string and acordingli decide with report template and data need to add. 
      var type = Request.QueryString["Type"];//parameter from angular 
      if (type != null) 
      { 
       type.Trim(); 
      } 
      else { type = "Xm"; } 
      if (type.Equals("Pipe")) 
      { 
       ViewBag.Path = @"report path"; 
       ViewBag.Data = "data json in my case"; 
      } 
      else 
      { 
       ViewBag.Path = @"aspx report path";//you can specify this report at runtime 
       ViewBag.Data = //json data in my case,you can add any data wicht impliments ILIST or related interfaces; 
      } 

      return View(); 
     } 
    } 

Indexansicht (die Bericht erstellen).

@{ 
    ViewBag.Title = "Home Page"; 
} 


@Html.DevExpress().WebDocumentViewer(settings => 
{ 
    settings.Name = "WebDocumentViewer"; 
}).Bind((new DXWebApplication1.Reports.Class1(@ViewBag.Path, @ViewBag.Data)).getReport()).GetHtml() 
//(DXWebApplication1.Reports.Class) this class is created to return report 

Klasse, die Bericht zurückgibt, um anzuzeigen.

DXWebApplication1.Reports.Class .

wie benutze rest services ich bin de-serialisierung json zu C# klassen für den bericht.

C# -Klasse zum Deinserialisieren von JSON-Daten.

class JobCode 
{ 
    [JsonProperty("Description")] 
    public string Description { get; set; } 
    [JsonProperty("Size")] 
    public int Size { get; set; } 
    [JsonProperty("Weight")] 
    public int Weight { get; set; } 
    [JsonProperty("name")] 
    public string Name { get; set; } 
}