2011-07-15 3 views
0

私はasp.net mvc "予約"アプリを書いています。 C#のグリッドビューでは、「新規」、「保留中」、「承認済み」、「拒否」など、レビュープロセスのいくつかのステータスが各リクエストの詳細と一緒に表示されます。グリッドビューの列に1つの選択肢のアクションリンクを作成することはできますか?

1回のレビューで可能ですか状態(例えば、「保留中」)ので、ユーザはそれをクリックして、予約の要件のチェックリストを見ることができ、アクションリンクする

今私はアクションリンクなど、すべてのステータスがあります。 columns.Template(o => { %> <%= Html.ActionLink(o.Status, "Details", new { id = o.ID })%> <% }).Title("Status").Width(50); をしかし、私はそれらのうちの1つだけをアクティブにするために「保留中」、その他のビューで表示するだけでよい。

より完全なコードは次のとおりです。 `columns.Bound(o => o.Status);
columns.Template(O => { %> <%(Html.BeginForm( "保留"、 "ReservationRequests" を使用して(o.Statusが== "新しい"){%> <%)場合){ %> <% = Html.AntiForgeryToken()%> <% = Html.Hidden( "ID"、o.ID)%> <%}%> <%}%>

   <% 
      }).Title(string.Empty).Width(50); 

     columns.Template(o => 
      { 
      %> 

       <% if (o.Status == "Declined" | o.Status == "New" | o.Status == "Pending") 
        { %> 
        <% using (Html.BeginForm("Approve", "ReservationRequests")) { %> 
         <%= Html.AntiForgeryToken() %> 
         <%= Html.Hidden("ID", o.ID) %> 
         <input type="submit" value="Approve" class="submit" /> 
        <% } %> 
       <% } %> 
       <% 
      }).Title(string.Empty).Width(50); 
     columns.Template(o => 
      { 
       %> 
       <% if (o.Status == "Approved" | o.Status == "New" | o.Status == "Pending") 
        { %> 
        <% using (Html.BeginForm("Decline", "ReservationRequests")) { %> 
         <%= Html.AntiForgeryToken() %> 
         <%= Html.Hidden("ID", o.ID) %> 
         <input type="submit" value="Decline" class="submit" /> 
        <% } %> 
       <% } %> 
       <% 
      }).Title(string.Empty).Width(50);` 

答えて

0

私はあなたが求めていると思いますConditional Rendering。そこにはたくさんの例があります。しかし、あなたはちょうどのような何かをすることができます:

@if (status == "pending") { 
    columns.Template(o => { %> <%= Html.ActionLink(o.Status, "Details", new { id = o.ID })%> <% }).Title("Status").Width(50); 
} 
+0

私は必要なものをまったく行いません。ちょうど明確にする:最初にステータス列に "新しい"ステータスがあり、 "保留中"がクリックされた後、 "保留中"になります。これは次のコードです: – Greg

+0

テンプレート(o => { %> <%if(o.Status == "New"){%> <%using(Html.BeginForm( "Pending"、 "ReservationRequests" )<%= Html.Hidden( "ID"、o.ID)%> <%= Html.AntiForgeryToken()%> % submit "/> – Greg

+0

"ペンディング "ターンをアクションリンクにすることは可能ですか?条件は機能しますが、グリッドに別の列を作成します。 – Greg

関連する問題