2013-02-19 153 views
1

我所試圖做的事:劍道UI MVC電網editortemplate問題

  1. 我有一個表格與劍道UI控件像上半年的DatePicker(S),下拉列表(S),NumericTextBox(S)頁面

  2. 第二半部具有劍道UI MVC網格控制

    • 這劍道UI網格控制具有8個列,其中兩列具有劍道下拉列表(EditorTemplate)和CheckBox(EditorTemplate)。
    • Kendo UI網格控件是Ajax綁定。
  3. 當保存按鈕被點擊時,從劍道UI控件(前半部分)和劍道UI電網控制(後半)一起被髮布爲經由「Ajax的郵報」 JSON對象到控制器的所有值。

  4. 我使用模型上述過程

問題或者我面臨的問題結合:

與其他劍道UI控件形式上半年正確發佈它們的值控制器,但作爲Kendo UI Grid發佈某些列值有些問題

  • Kendo UI Grid中的列與數據類型十進制不會發布值

  • EditorTemplate控件與CheckBox和Kendo下拉列表一樣,顯示的值爲"[Object Object]",代表dropdownlist和布爾實際值而不是複選框控件。

+1

沒有代碼意味着幾乎沒有機會尋求幫助。 – 2013-02-19 19:51:00

+0

你可以添加一些代碼嗎? – NunoCarmo 2013-02-19 23:06:45

+0

請參閱我的代碼: – Shamanth 2013-02-21 05:12:12

回答

4

我懷疑你想要網格作爲窗體的一部分。通常情況下,網格通過ajax進行交互,而不是通過批量表單提交與其他控件 - 從表單中解包。僅這一點可能會讓你頭痛。

上半場:。

嘗試使用劍道()DatePickerFor(),劍道()DropDownListFor(),等你並不需要通過請將.Name明確地命名這些劍道控件()。這可以幫助您進行模型綁定。

下半場:

使用非十進制另一種數據類型。你認爲這很難?嘗試使用TimeSpan類型進行時間分析,不需要附加日期(成年男性在哭泣)。

您通常不需要布爾型/複選框的EditorTemplate。只需使用這個技巧(假設你使用Razor,因爲你沒有留下任何代碼)。

columns.Bound(b => b.IsActive).ClientTemplate("<input type='checkbox' ${ IsActive == true ? checked='checked' : ''} disabled />"); 

你對於自己的DDL網最好的選擇是

columns.ForeignKey(b => b.CustodianIdPrimary, Model.Custodians, "Id", "FullName").EditorViewData(new {ProjectId = Model.ProjectId}).EditorTemplateName("CustodianDropDownList"); 

凡Model.Custodians是所有可能的項目的列表。然後,您可以將您的EditorTemplate綁定到這個列表,或使Ajax調用,如果你需要在這個特定的DDL的一個子集,這樣

@model int 
@(Html.Kendo().DropDownList() 
    .Name(ViewData.TemplateInfo.GetFullHtmlFieldName("")) 
    .DataValueField("Id") 
    .DataTextField("FullName") 
    .OptionLabel("Unassigned") 
    .DataSource(dataSource => dataSource 
     .Read(read => read.Action("ReadProjectCustodiansDdl", "SysMaint", new {projectId = ViewData["ProjectId"]})) 
    ) 
) 

來填充,但這裏是劍道提供的示例

@model object  
@(
    Html.Kendo().DropDownListFor(m => m)   
     .BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"]) 
) 

請注意,在我的初始列中使用EditorViewData參數.ForeignKey在此示例中用於傳遞整個列表。

祝你好運!

+0

感謝您的回答Trey,真的很感謝,但這裏是我的觀點: - 1)正如我所提到的,要求是將表格數據(其他kendo UI控件)與網格數據一起保存爲ajax發佈.2)這意味着網格不會有編輯器工具欄(網格內沒有CRUD操作).3)而且,在我的網格內部,必須進行一些計算和驗證,當單元格值)已更改。4)爲此,我計劃刷新網格數據源,它將在客戶端動態更新列和頁腳,並在保存時將按批處理進行保存。 – Shamanth 2013-02-21 07:45:23

+0

還有一點需要補充的是:1)我將網格(下半部分)渲染爲局部視圖 – Shamanth 2013-02-21 07:46:07

+0

Hi Trey,實際上我確實有一個場景,我希望網格用表單的其餘部分回發,因爲整個頁面需要保存在一個事務中(包括修改的網格行)。有沒有辦法從回髮網格中獲取所有髒數據,並且根本沒有ajax? – 2013-03-11 04:01:49