2016-09-21 9 views
0

私は1つのモジュールを開発しました。私はテキストボックスと送信ボタンがほとんどありません。テキストボックスの値を提出するとき、私はそれらをdb値と比較し、結果と表示を返します。私はページングも使用しました。これが私の行動方法です。Mvc4表示モデルのプロパティビュー

[HttpGet] 
     public ActionResult Index(int? clientId, DateTime? dateofAction, int? doc_typeid, string employeeID,string citizenId,int? currentFilter, DateTime? filterdateTime,int? filterdocType,string filteredemployeeID,string filteredcitizenId,int? page) 
     { 
      logDetailsEnumeration model = new logDetailsEnumeration(); 
      DB_KYC3Entities db = new DB_KYC3Entities(); 
      var docTypes = from c in db.tm_doc_type select c; 
      if (clientId != null) 
      { 
       page = 1; 
      } 
      else 
      { 
       clientId = currentFilter; 
      } 
      if(dateofAction!=null) 
      { 
       page = 1; 
      } 
      else 
      { 
       dateofAction = filterdateTime; 
      } 
      if(doc_typeid != null) 
      { 
       page = 1; 
      } 
      else 
      { 
       doc_typeid = filterdocType; 

      } 
      if(employeeID!=null) 
      { 
       page = 1; 
      } 
      else 
      { 
       employeeID = filteredemployeeID; 
      } 
      if(citizenId!=null) 
      { 
       page = 1; 
      } 
      else 
      { 
       citizenId = filteredcitizenId; 
      } 

      ViewBag.CurrentFilter = clientId; 
      ViewBag.filterdateTime = dateofAction; 
      int pageSize = 8; 
      int pageNumber = (page ?? 1); 
      VerificationLogBAL obj = new VerificationLogBAL(); 
      int docType = obj.GetDocDetails(doc_typeid?? default(int)); 
      List<logDetails> logDetails = obj.getlogDetails(clientId?? default(int), dateofAction??DateTime.Now, docType, employeeID, citizenId); 
      IPagedList<logDetails> pagedLog = logDetails.ToPagedList(pageNumber, pageSize); 
      model = new logDetailsEnumeration() 
      { 
       doc_typeid= doc_typeid, 
       Count=logDetails.Count, 
       employeeID = employeeID, 
       citizenId= citizenId, 
       logDetails = pagedLog, 
       doctype_name=new SelectList(docTypes, "doc_typeid", "doctype_name") 
      }; 
      return View("Index",model); 
      } 
     } 

これは

<div class="forms"> 
    @using (Html.BeginForm("Index", "VerificationLog", FormMethod.Get)) 
    { 
     @Html.AntiForgeryToken() 
     @Html.ValidationSummary(true) 
     <div class="message"></div> 

     <div class="loginUsernamePassword"> 
      <i class="fa fa-user"></i> 
      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="dataTable tableHover"> 
       <tr> 
        <th width="8%" scope="col">Client ID</th> 
        <th width="20%" scope="col"> 
         <div class="form-box form-box-default"> 

          @Html.TextBoxFor(x=>x.clientId, ViewBag.CurrentFilter as string, new { @id = "clientId", @placeholder = "Client ID", @class = "form-control", @maxlength = 20 }) 

         </div> 
        </th> 
        <th width="10%" scope="col">Date Of Action</th> 
        <th width="20%" scope="col"> 
         <div class="form-box form-box-default"> 
         @Html.TextBoxFor(x=>x.dateofAction, ViewBag.filterdateTime as string, new { @id = "dateofAction", @placeholder = "Date Of Action", @class = "txtBox form-control calender validate[required]" }) 
          @*@Html.TextBox("dateofAction", ViewBag.filterdateTime as string, new { @id = "dateofAction", @placeholder = "Date Of Action", @class = "txtBox form-control calender validate[required]" })*@ 


         </div> 
        </th> 
        <th width="15%" scope="col">Type Of Document</th> 
        <th width="17%" scope="col"> 
         <div class="form-box form-box-default"> 
          @*@Html.TextBox("typeofDocument", ViewBag.filterdateTime as string, new { @id = "typeofDocument", @placeholder = "Type Of Document", @class = "form-control", @maxlength = 20 })*@ 
          @Html.DropDownListFor(x=>x.doc_typeid,Model.doctype_name,"Select",new { @class = "form-control" }) 

               </div> 
        </th> 
       </tr> 
       <tr> 
        <th width="15%" scope="col">Employee ID</th> 
        <th width="17%" scope="col"> 
         <div class="form-box form-box-default"> 
          @Html.TextBoxFor(x=>x.employeeID, Model.employeeID, new { @id = "employeeID", @placeholder = "Employee ID", @class = "form-control", @maxlength = 20 }) 

         </div> 
        </th> 
        <th width="15%" scope="col">Citizen ID</th> 
        <th width="17%" scope="col"> 
         <div class="form-box form-box-default"> 
          @Html.TextBoxFor(x=>x.citizenId, Model.citizenId, new { @id = "citizenId", @placeholder = "Citizen ID", @class = "form-control", @maxlength = 20 }) 


         </div> 
        </th> 
        <th width="10%" scope="col" colspan="2"> 
         <input type="submit" value="Search" class="btn btn-primary btn-cons search" /> 
       </tr> 
      </table> 

      </div> 
      } 

     </div> 

     @if (Model != null && Model.logDetails.Count != 0) 
     { 
      <br /> 
      <h2>Verification Log</h2> 
      <br /> 
      <div id="GridDetails"> 
       <table width="100%" border="0" cellspacing="0" cellpadding="0" class="dataTable tableHover"> 
        <tr> 
         <th>Label</th> 
         <th>Value</th> 
         <th>UpdatedOn</th> 
         <th>UpdatedBy</th> 
         <th>UpdatedStatus</th> 
         <th>RejectComment</th> 
        </tr> 
        @foreach (var group in Model.logDetails) 
        { 
         <tr> 
          <td>@group.contentLabel</td> 
          <td>@group.contentValue</td> 
          <td>@group.updatedOn</td> 
          <td>@group.updatedBy</td> 
          <td>@group.updatedStatus</td> 
          <td>@group.rejectComment</td> 
         </tr> 

        } 
       </table> 

       @Html.PagedListPager(Model.logDetails, page => Url.Action("Index", 
new { page, currentFilter = ViewBag.CurrentFilter, filterdateTime=ViewBag.filterdateTime, filterdocType= Model.doc_typeid, filteredemployeeID = Model.employeeID, filteredcitizenId = Model.citizenId })) 
       Page @(Model.logDetails.PageCount < Model.logDetails.PageNumber ? 0 : Model.logDetails.PageNumber) of @Model.logDetails.PageCount 
      </div> 
     } 

上記のコードビュー

が正常に動作しています。私にはいくつかの困難があります。内部のアクションメソッド私はモデルを持っています。モデルの中にはCount = logDetails.Countがあります。 Countは返される行数を保持します。最初のページが読み込まれると、カウント値は0になり、対応する一致するデータがデータベースにない場合は、カウント値も0になります。以下のようなメッセージを表示します。

var records = @Html.Raw(Model.Count); 
      if(records==0) 
      { 
       fun_toastr_notify('success','No Records Found'); 
      } 

これも機能しますが、ページが最初に読み込まれると(カウントはゼロになります)、メッセージもポップアップします。これを避けるにはどうすればいいのでしょうか?前もって感謝します。

+0

ViewbagまたはViewdataを使用してカウント値を設定できます。 viewbagがnullの場合は、最初に要求されます。それがあなたの行動から来たら、数を数えるようにしてください、そして、そこであなたは比較をすることができます。 –

答えて

0

あなたはそのようなことを試しましたか?検索パラメータまたは何でもあなたはそれが初めての場合は区別しなければならないに応じて、真viewbag.isfirsttime =を渡す初めて

<script type="javascript/text"> 
     document.ready(function(){ 
      @if (Model.logDetails.Count != 0) 
      { 
       fun_toastr_notify('success','No Records Found'); 
      } 
     }; 
</script> 
+0

ありがとうございます。試したが運がなかった。 –

+0

Model.logDetails.Countは、ページが最初に読み込まれたときにゼロになります。また、Model.logDetails.Countもゼロになります。 –

0

を(そのコードがテストされていない、その場で書かれています)。 よりコード

<script> 

    @{ 
     var count = !ViewBag.IsFirstTime ? Model.Count : -1; 
    }; 
    var records = @count; 
    if (records == 0) { 
     fun_toastr_notify('success', 'No Records Found'); 
    } 
</script> 

これは確実に動作します。ハッピーコーディング!

+0

ありがとうございます。いいえ、それは動作していません –

+0

@ NiranjanGodboleどのようにそれを使用していますか?コードを共有してください –

+0

ありがとうございます。上記と同じです。 –

関連する問題