2016-12-14 2 views
0

Ist es möglich, eine Rasierersyntax zu verwenden, um Kendo-Widgets in den Inhalt eines Kendo-Fensters einzufügen? HierPlatzieren anderer Kendo-Widgets in den Inhalt von Windows für ASP.NET MVC

ist ein Beispiel dafür, was ich zu tun versucht, aber die Kendo-Widgets Laden nicht richtig:

<div id="window1"></div> 

    @(Html.Kendo().Window() 
      .Name("productWindow") 
      .Title("Additional Settings") 
      .Width(400) 
      .Modal(true) 
      .AppendTo("#window1") 
      .Visible(false) 
      .Actions(actions => actions.Minimize().Maximize().Close()) 
.Content(@<text> 
    <label asp-for="ProductId"></label> 
    @(Html.Kendo().DropDownList() 
         .Name("ProductId") 
         .DataTextField("Text") 
         .DataValueField("Value") 
         .BindTo(new List<SelectListItem>() { 
          new SelectListItem() { 
           Text = "Prod 1", 
           Value = "1" 
          }, 
          new SelectListItem() { 
           Text = "Prod 2", 
           Value = "2" 
          }, 
          new SelectListItem() { 
           Text = "Prod 3", 
           Value = "3" 
          }, 
          new SelectListItem() { 
           Text = "Prod 4", 
           Value = "4" 
          } 
         }) 
         .Value("2") 
         .HtmlAttributes(new { style = "width: 100%" }) 
         .Deferred() 
    ) 
    <span asp-validation-for="ProductId" class="text-danger"></span> 
     </text>) 
      .Deferred() 
    ) 
+0

Ich löschte meine Antwort, wie Sie sagen, das Dropdown ist in Ordnung und die doppelte Flucht funktioniert nicht wie erwartet. Allerdings würde ich nur vorschlagen, dass wenn Sie etwas in ein Fenster laden, dann wäre es einfacher, den Inhalt in eine Partial zu brechen, wenn Sie Razor verwenden. Wenn Sie den Fensterinhalt inline einfügen, wird es sehr unhandlich sehr schnell drehen. –

+0

Ok, lassen Sie uns sagen, ich habe es in eine Partial, die ein ViewModel hat. Wie kann ich diesen Teil des Inhalts des Fensters machen? Mein übergeordnetes Ziel ist es, ein einzelnes Formular auf der übergeordneten Seite mit Feldern zu haben, dann einige der Formularfelder in einem Kendo-Fenster. Beim Post des Formulars sollten alle Felder an das Ansichtsmodell gebunden und an die Aktion Erstellen in meinem Controller gesendet werden. Ich glaube, ich bin in der Nähe, es geht nur darum, diese Kendo-Steuerelemente in den Inhalt des Fensters zu laden. –

+0

Ich habe eine Antwort auf Ihren Kommentar unten hinzugefügt. –

Antwort

0

Sie können die Fenster haben einen weiteren Anruf zu fragen, denn es ist Inhalt. Dieser Aufruf gibt den Teil mit der Ansicht für das Fenster zurück.

In geordneten Ansicht

@model ProductFormViewModel 

@(Html.Kendo().Window().LoadContentFrom("Action", "Controller",new object{"detailID",model.DetailID); 

-Controller

public ActionResult Action(int detailID) 
{ 
    var detailModel=LoadDetail(DetailID); 
    return PartialView("MyWindowPartual",detailModel); 
} 

Fenster-Detail PartialView

@model AdvancedProductSettingsViewModel 

@(Html.Kendo().DropDownList()... 

Und ha Der Controller gibt eine View() oder PartialView() zurück.

+0

Perfekt lassen Sie mich dies versuchen und ich werde als richtig markieren. Weißt du, wie ich das ViewModel des Partials mit dem ViewModel meiner Elternseite zusammenführen kann? Nehmen wir an, ich habe ein ViewModel namens ProductFormViewModel auf der Parent-Seite und dann habe ich ein ViewModel namens AdvancedProductSettingsViewModel. Die VM auf der übergeordneten Seite enthält Eigenschaften für die Felder auf der übergeordneten Seite und für die partiellen. Ich werde diese Felder irgendwie mit den Teilfeldern füllen müssen. –

+0

Nur um meinen vorherigen Beitrag klarer zu machen: Normalerweise, wenn Sie eine Teilansicht laden, übergeben Sie ihm ein Ansichtsmodell oder? In diesem Szenario werde ich sicherstellen, dass ich das Ansichtsmodell von meinem übergeordneten Formular übergeben kann. –

+0

Sie müssten das AdvancedProductSettingsViewModel für die Detailansicht ein zweites Mal in Ihrem Controller laden. Normalerweise würde ich die Eltern als eine Übersichtsansicht mit einer Verknüpfung zu dem Detaildatensatz oder den Datensätzen trennen. Ich habe die Antwort mit einer Lösung aktualisiert. –

Verwandte Themen