2011-12-21 17 views
1

を有効:私は私のWebGridを作りたいWebGridの「ヘルパー 『』 jQueryのスクリプト参照がでAjaxサポートを有効にするために必要とされる」ASP.NET MVC 3.0 WebGridの - Ajaxが、私は次のような問題に遭遇してい

をAJAXが有効になりました。

Function SearchForm(searchModel As GemeentePostWebService.GemeentePostCriteria) As PartialViewResult 
      searchModel.Taalcode = "nl" 


      'Code to fill up Model 

       ViewBag.WebGrid = CreateGrid(viewModelList) 
       Return PartialView("Partial/_Grid", ViewBag.WebGrid) 
      End If 
     End Function 

     Private Function CreateGrid(source As List(Of GemeentePostModel)) As WebGrid 
      Return New WebGrid(source:=source, rowsPerPage:=10, ajaxUpdateContainerId:="grid", defaultSort:=GemeentePostColumnsEnum.GemeenteNaam) 
     End Function 

私はいくつかの検索値を入力して、フォームを送信すると、私は次のエラーを取得する:

私は部分図

@ModelType WebGrid 

@Model.GetHtml(tableStyle:="webgrid", headerStyle:="webgrid-header", footerStyle:="webgrid-footer", alternatingRowStyle:="webgrid-alternating-row", selectedRowStyle:="webgrid-selected-row", rowStyle:="webgrid-row-style", 
         columns:=Model.Columns(Model.Column(
              columnName:=GemeentePostColumnsEnum.NISCode.ToString()), 
           Model.Column(columnName:=GemeentePostColumnsEnum.GemeenteNaam.ToString()), 
           Model.Column(columnName:=GemeentePostColumnsEnum.DistrictNaam.ToString()), 
           Model.Column(columnName:=GemeentePostColumnsEnum.PostCode.ToString()), 
           Model.Column(columnName:=GemeentePostColumnsEnum.PostNaam.ToString()), 
           Model.Column(
            format:[email protected]@<text>@Ajax.ActionLink("Edit", "AddEdit", New With {.NISCode = item.NISCode}, New AjaxOptions With {.UpdateTargetId = "formGemeentePost", .InsertionMode = InsertionMode.Replace, .HttpMethod = "GET", .OnFailure = "failure"})</text>))) 

とコントローラのため、このコードのためにこのコードを持って"WebGrid"ヘルパーでAjaxサポートを有効にするには、JQueryスクリプトリファレンスが必要です。

結果として:適切なフィルタリングされた値が得られましたが、div(updatetargetid)i満ちていない。

私はすでに、jQueryと控えめなスクリプトを追加し、私のヘッダーにそれらを含める:

それは if (typeof(jQuery)=='undefined')に壊れた場合、それはほとんど間違いなくその上のjqueryのを見つけていないので、あなたは、jQueryのにあなたの参照を追加しました
<!DOCTYPE html> 
<html> 
<head> 
    <title>X</title> 
    <link href="/X/Content/Site.css" rel="stylesheet" type="text/css" /> 
    <link href="/X/Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" /> 
    <script src="/X/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script> 
    <script src="/X/Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script> 
    <script src="/X/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script> 
</head> 
+0

firebugや開発者ツールを使ってクライアントサイドのjavascriptをデバッグしたり、別のjqueryライブラリなどを探している可能性があります。 –

+0

IEの開発者ツールを使用してデバッグしました。「JQueryスクリプトリファレンスが必要です"WebGrid"ヘルパー "エラーでAjaxサポートを有効にしてください。私はそれをスキップすると、レイアウトなしでdivに挿入したいページがあります。 私は特定のバージョンへの参照が表示されません。 このアラートは、ソースコードで定義されている私が受け取る: "ます。

0

Return New WebGrid(source:=source,..... 

Return New WebGrid(source: source,..... 

すなわち "=" をドロップ

を読むべきでしょうか? (VBを使用して以来、申し訳ありませんでした)

また、URLアドレスの部分表示のコントローラアクション名とパラメータが表示されますか? フォームをサーバーにポストバックする方法と関係があります。ユーザーが送信ボタンを押すのではなく、JavaScriptを使用してプログラムでフォームデータをポストしようとしたときに、同じエラーが発生しました。ページリフレッシュ、メニュー選択、ドロップダウン選択イベントに合わせてグリッドを設定する必要があり、動作させるのが困難でした。私が受け取ったエラーを受け取ったとき、私の部分的なページはwebgridで埋め尽くされましたが、残りのページはありませんでした。

私はこの問題を決して解決しませんでしたが、私はそれを手に入れました。私のインスピレーションは、このポストから来たこの

@model MyProject.Models.GridResultsModel 
... 

<div id="updatetarget"> 
    @Html.Partial("_GridResults", Model) 
</div> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#updatetarget').load("_GridResults")   
    }); 
</script> 

編集ビュー: Multiple Checkbox selection using Webgrid in MVC 3 (select All/Deselect All), Sorting and Paging

希望、これはどこに直面することができ

+0

いいえ、VBコードには等号が必要です。例:source:= Model –

1

問題があるのに役立ちます私のソリューションは、これを関与しました"jquery.unobtrusive-ajax.min.js"ファイルへの参照はあなたのページにあります。

あなたはYSlowのかなPageSpeedを使用している場合は、候補の1つは、CSSが一番下に置かれますジャバスクリプト頭に入れてしまうことです。

これは(それは同様に私に起こる持っていた)あなたが起こることを見ているものを引き起こします。

参照が下部にある場合は、ページの最初の読み込み時(または更新時)に、WebGridヘルパーがそれを実行しようとする前にjavasciptファイルが読み込まれていないため、ポップアップが表示されます欠落している参照に関するメッセージ。それを却下した場合は、ページングやソートが実際に機能し、メッセージが消えるまでページを再表示します。

あなたはトップにあなたのスクリプト参照を移動するか、またはあなたは、処理を遅らせるためにdocument.readyスクリプトを書くことができます。

関連する問題