0

テレリック グリッドの列の 1 つに削除イメージを含むコンサルタントを表示する、厳密に型指定されたビューがあります。コンサルタントがアクティブか非アクティブかを保存する「ステータス」列があります。私がやりたいことは、コンサルタントが「アクティブ」ステータスの場合、灰色の削除イメージを表示し (無効、アクティブであるためコンサルタントを削除できません)、そうでない場合は赤い削除イメージを表示します (有効、コンサルタントを削除できます)。彼/彼女は活動していないため)。これは、以下の私のデザインで可能ですか?

コントローラーのアクション:

public ActionResult Index()
{
    ViewData.Model = db.Consultants.OrderBy(p => p.ConsultantName);
    return View();
}

意見:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<UI.Models.Consultants>>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

                <table>
                    <tr>
                        <td><% Html.GridFor("Consultants", "Consultants", "Consultants", GridOptions.EnableSelecting, Model).Columns(column =>
                                {
                                    column.Bound(o => o.Code).Title("Code");
                                    column.Bound(o => o.Description).Title("Description");                                  
                                 column.Template(o =>
            {
                %>
                <img src="/Content/img/delete.png" alt="consultant" title="consultant" onclick="javascript:deleteConsultant(<%= o.consultantKey %>)" />
                <%
            }).Title("").ClientTemplate(
                      "<img src=\"/Content/img/delete.png\" alt=\"consultant\" title=\"consultant\" onclick=\"javascript:deleteConsultant(<#= ProjectKey #>)\"/>");
            column.Bound(o => o.consultantKey).Hidden();
        }).Render();            
                            %>
                        </td>
                    </tr>
                </table>
</asp:Content>

どんな助けでも大歓迎です。

4

2 に答える 2

2

はい、可能です。テンプレートに条件付きロジックを含めることができます。次に例を示します。

columns.Template(o => 
{
     if (o.Foo)
     {
       %> 
           <img src="img1.gif" />
       <%
     }
     else
     {
       %>
           <img src="img2.gif" />
       <%
     }
}).ClientTemplate("<# if (Foo) { #> <img src='img1.gif'/> <# } else { #> <img src='img2.gif' /> <# } #>");
于 2012-11-29T21:29:34.187 に答える
0

おそらくこのようなもの:

<%
String clientTempate;

if(Model.Active.Equals("Active"){
  clientTemplate = "<img src=\"/Content/img/delete.png\" alt=\"consultant\" title=\"consultant\" onclick=\"javascript:deleteConsultant(<#= ProjectKey #>)\"/>"
}
else{
  clientTemplate = "<img src=\"/Content/img/grayedout-delete.png\" alt=\"consultant\" title=\"consultant\" />"

}
%>


<% Html.GridFor("Consultants", "Consultants", "Consultants", GridOptions.EnableSelecting, Model).Columns(column =>
                                        {
                                            column.Bound(o => o.Code).Title("Code");
                                            column.Bound(o => o.Description).Title("Description");                                  
                                         column.Bound(o => o.consultantKey).Title("").ClientTemplate(clientTemplate);
                    column.Bound(o => o.consultantKey).Hidden();
                }).Render();            
                                    %>
于 2012-11-29T22:14:54.330 に答える