2

我想在 Ajax Kendo TabStrip 中放置一个 Ajax Kendo Grid,但该网格从不显示它的任何值。(即使 FireBug 控制台指示已正确获取值...)

这是一个已知的问题 ?

提前致谢。

这是我的代码:

Ajax Kendo TabStrip:

@(Html.Kendo().TabStrip()
.Name("portailClientsTabStrip")
    //.HtmlAttributes(new { style="height:100%" })
.Animation(animation =>
{
    animation.Enable(true);
    animation.Open(config =>
    {
        //config.Expand();
        config.Fade(FadeDirection.In);
        config.Duration(AnimationDuration.Fast);
    });
})
.Items(tabstrip =>
{
    tabstrip.Add().Text("Livraisons")
        .Selected(true)
        .LoadContentFrom(Url.Content("Livraison"));

    tabstrip.Add().Text("Remplissage")
        .LoadContentFrom(Url.Content("Remplissage"));

    tabstrip.Add().Text("Expéditions")
        .LoadContentFrom(Url.Content("Expedition"));

    tabstrip.Add().Text("Collectes")
        .LoadContentFrom(Url.Content("Collecte"));

    tabstrip.Add().Text("Annonces").LoadContentFrom(Url.Content("Annonce"));
})
.Events(e=>e
    .Select("portailClientsTabStripSelectHandler")
    .Activate("portailClientsTabStripActivate")
))

Ajax Kendo Grid 里面的局部视图 Annonce :

@(Html.Kendo().Grid<Integraal.Models.Mouvement>()
.Name("grilleMouvements") // Préfixe du nom de la grille par l'identifiant de la vue partielle.
.Columns(columns =>
{
    columns.Bound(m => m.mvt_cli_code);
    columns.Bound(m => m.mvt_detenteur_code);
    columns.Bound(m => m.mvt_date_prev);
    columns.Bound(m => m.mvt_date);
    columns.Bound(m => m.mvt_prod_code);
    columns.Bound(m => m.mvt_quantite);
    columns.Bound(m => m.mvt_flag).Visible(false);
})
.Navigatable()
.Sortable()
.Scrollable()
.Filterable()
.Resizable(resize => resize.Columns(true))          //Colonnes réglables en largeur
.DataSource(dataSource => dataSource
    .Ajax()
    .Read(r => r.Action("readAnnonces", "PortailClients"))
)
.Events(e => e.DataBound("grilleAnnoncesDataBound")))
4

3 回答 3

4

您不应该使用 LoadContentFrom 来加载标签条内的网格

利用Content(@<text> @Html.Action("YourAction","YourController")</text>)

于 2013-08-26T15:56:31.860 回答
0

当您返回 Json 时,请确保您的返回语句中有 JsonRequestBehavior.AllowGet。希望这可以帮助

例子:

返回 Json(videos.VideoList.ToDataSourceResult(request),JsonRequestBehavior.AllowGet);

于 2013-08-08T19:16:55.773 回答
0

我没有 JavaScript 错误。

这是我完整的部分视图代码:

@model Integraal.Models.Mouvement
<script type="text/javascript">
function grilleAnnoncesDataBound(e) {

    //$('tr').each(function () {
    //    if ($(this).text() == 'Jane') { $(this).addClass('customClass') }
    //});
}
</script>
@(Html.Kendo().Grid<Integraal.Models.Mouvement>()
.Name("grilleMouvements") // Préfixe du nom de la grille par l'identifiant de la vue partielle.
.Columns(columns =>
{
    columns.Bound(m => m.mvt_cli_code);
    columns.Bound(m => m.mvt_detenteur_code);
    columns.Bound(m => m.mvt_date_prev);
    columns.Bound(m => m.mvt_date);
    columns.Bound(m => m.mvt_prod_code);
    columns.Bound(m => m.mvt_quantite);
    columns.Bound(m => m.mvt_flag).Visible(false);
})
.Navigatable()
.Sortable()
.Scrollable()
.Filterable()
.Resizable(resize => resize.Columns(true))          //Colonnes réglables en largeur
.DataSource(dataSource => dataSource
    .Ajax()
    .Read(r => r.Action("readAnnonces", "PortailClients"))
)
.Events(e => e.DataBound("grilleAnnoncesDataBound"))
)

这是我的控制器的操作:

public PartialViewResult Annonce()
    {
        return PartialView();
    }

    public JsonResult readAnnonces([DataSourceRequest] DataSourceRequest request)
    {
        MouvementService service = new MouvementService();
        IEnumerable<Mouvement> liste = service.getMouvements("A");

        Dictionary<string, object> session = new Dictionary<string, object>();
        session.Add("listeAnnonces", liste);
        GlobalSession.SetInSession<Dictionary<string, object>>("1", session);

        return Json(liste.ToDataSourceResult(request));
    }

谢谢你帮助我。

于 2013-02-07T07:53:38.123 回答