2011-11-14 11 views
0

MVCでjqgridを使用しています。ここに私のマークアップです:これは正常に動作しているが、新しいエントリが追加されたときSTARTDATE値が読み取り専用であり、データベース内の最後のエントリの終了日の値がデフォルトとなるよう、私はそれを強化したいjqGridサーバー側からデフォルトエントリを取得

$("#list").jqGrid({ 
    url: '/GstRate/GstRateGridData/', 
    datatype: 'json', 
    mtype: 'POST', 
    colNames: ['GstRateLookupId', 'Percentage Rate', 'Start Date', 'End Date', 'CreatedByUserName', 'CreatedDateTime', ''], 
    colModel: [ 
      { name: 'GstRateLookupId', index: 'GstRateLookupId', hidden: true, key: true, editable: true, editrules: { required: false }, editoptions: { defaultValue: '0'} }, 
      { name: 'PercentageRate', index: 'PercentageRate', editable: true, editrules: { required: true} }, 
      { name: 'StartDate', index: 'StartDate', width: 400, align: 'center', formatter: 'date', editable: true, editrules: { required: true }, formatoptions: { srcformat: 'd/m/y', newformat: 'd-m-y' }, editoptions: { dataInit: function (element) { $(element).datepicker({ dateFormat: 'd-m-y' }) } } }, 
      { name: 'EndDate', index: 'EndDate', width: 400, align: 'center', editable: true, formatter: 'date', formatoptions: { srcformat: 'd/m/y', newformat: 'd-m-y' }, editoptions: { dataInit: function (element) { $(element).datepicker({ dateFormat: 'd-m-y' }) } } }, 
      { name: 'CreatedByUserName', index: 'CreatedByUserName', hidden: true, editable: true, editrules: { required: false} }, 
      { name: 'CreatedDateTime', index: 'CreatedDateTime', hidden: true, editable: true, editrules: { required: false} }, 
      { name: 'act', index: 'act', width: 55, align: 'center', sortable: false, formatter: 'actions', formatoptions: { keys: true, delbutton: false} } 
      ], 
    pager: $('#pager'), 
    rowNum: 10, 
    rowList: [5, 10, 20, 50], 
    viewrecords: true, 
    imgpath: '', 
    caption: 'Gst Rates', 
    editurl: '/GstRate/SaveGstRate/' 
}); 
$("#list").navGrid('#pager', { edit: false, add: true, del: true, search: false }, {}, {}, { url: "/../GstRate/DeleteGstRate" }); 

私がこれを行うと考えることができる唯一の方法は、何らかの理由でサーバーサイドのメソッドを呼び出して、ポップアップの新規作成ダイアログボックスで開始日を入力することです。

私はこれを行うためにeditoptionsのdataUrl値を使用することを考えていましたが、このdataUrlは選択リストにデータを入力するときに機能するようです。ここでは選択リストを読み込み専用のテキストボックスにしたくありません。

これを達成する方法を知っている人はいますか?

答えて

0

私は2つの異なるソリューションの方法を参照してください。

  1. あなたが読み取り専用、その後$.ajaxごとに手動でサーバーにリクエストを送信するために「開始日」のbeforeShowFormコールバックセットの入力フィールドを使用します。要求のコールバックsuccessの中で、サーバーから受け取った 'StartDate'の入力フィールドにデータを設定できます。
  2. グリッドに記入する場合は、userdataを使用してグリッドに追加情報を保存します。 'StartDate'のdataInitの中には、内部のuserDataパラメータから必要なデータを取得し、入力フィールドの初期化を行います。
関連する問題