是否可以將模型驗證添加到編輯或添加jqgrid表單?如果是這樣,它將如何完成?我知道我可以爲jqGrid表單上的每個字段創建自定義驗證,但是如何將默認MVC3驗證集成到jqGrid?jqGrid&MVC3 - 添加模型驗證
我一直在創建一個自定義按鈕,在jQuery對話框中加載一個局部視圖。但是,我不希望再次調用控制器,因爲我可以通過jqGrid get Methods直接獲取所有行值(即使我失去了部分視圖模型驗證)。
任何提示?
是否可以將模型驗證添加到編輯或添加jqgrid表單?如果是這樣,它將如何完成?我知道我可以爲jqGrid表單上的每個字段創建自定義驗證,但是如何將默認MVC3驗證集成到jqGrid?jqGrid&MVC3 - 添加模型驗證
我一直在創建一個自定義按鈕,在jQuery對話框中加載一個局部視圖。但是,我不希望再次調用控制器,因爲我可以通過jqGrid get Methods直接獲取所有行值(即使我失去了部分視圖模型驗證)。
任何提示?
儘管我對jqGrid不熟悉,但我通常與您做同樣的事情,即從呈現局部視圖的控制器操作填充jQuery對話框。
您可以在呈現jqGrid視圖時加載局部視圖,而不是執行回調。然後只填充選定行中的字段。以下是一些要考慮的示例代碼,但未經測試。
網格視圖:
@model List<Customer>
<!-- create jqGrid here -->
@Html.PartialView("CustomerForm",new Customer());
CustomerForm:
@model Customer
<div id="CustomerForm">
@using (Html.BeginForm("Save","Customer",...))
{
@Html.HiddenFor(m => m.CustomerId)
<div class="control-group">
@Html.LabelFor(m => m.CustomerName)
<div class="controls">
@Html.EditorFor(m => m.CustomerName)
@Html.ValidationFor(m => m.CustomerName)
</div>
</div>
<p><input type="submit" id="submit" value="Save" /></p>
}
</div>
<script type="text/javascript">
var $cf = $('#CustomerForm');
$cf.dialog({ autoOpen: false }); // see jquery ui docs for exact options
$('#myGrid .edit, #myGrid .add').click(function() {
$(this).closest('tr').find('input, select').each(function() {
$('input[name='+this.name+'], select[name='+this.name+']',$cf).val($(this).val());
});
$cf.dialog('open');
});
</script>
例子:
$(document).ready(function() {
$("#jqg").jqGrid({
url: '@Url.Action("GetData")',
datatype: "json",
colNames: ['User name', 'Email'],
colModel: [
{ name: 'UserName', index: 'UserName', width: 150, sortable: true, editable: true },
{ name: 'Email', index: 'Email', width: 150, sortable: true, editable: true, editrules:{email:true, required:false}}
],
caption: "User List"
});
驗證是這裏editrules:{email:true, required:false}
(所以,如果該字段爲空,這是確定的,但如果它包含無效的電子郵件檢查失敗)。
更多資料a和例子jqGrid Wiki
如果你想要做這種檢查不修改您的JS代碼,你可以使用的控制從Trirand,它允許你做它的服務器端
我發現這個問題有用和有趣的。是否存在答案或類似的問題?謝謝! – Larry
@Larry,不要。直到現在我還沒有看到任何答案或類似的問題。但是,使用局部視圖並將其加載到jQuery對話框中很簡單。如果你真的想使用默認的對話框,你可以檢查商業jqGrid。它幾乎與asp.net mvc3完全集成。 – AdrianoRR
THX阿德里亞諾!我已經在jQuery對話框上使用jqgrid了。現在我需要添加/編輯記錄,並且我有幾個驗證,包括一些字段上的自定義遠程驗證。你有其他建議/提示嗎?謝謝! – Larry