Как написать условие на стороне клиента в шаблоне gridview item? - PullRequest
2 голосов
/ 13 июля 2010

Привет, не могли бы вы помочь мне, пожалуйста.Мне нужно написать условие на стороне клиента в элементе шаблона GridView.

Как вы можете видеть ниже, но оно не работает ...

<% if(Eval("item").Contains("keyword"){%>

<img src='<# Eval("imagepath") %>' />

<%}
else if(Eval("item").Contains("keyword2")){
%>
<img src='<# Eval("imagepath2") %>' />

<%}%>

Ответы [ 3 ]

2 голосов
/ 13 июля 2010

Используйте функцию code-behind для возврата логического значения.

ASPX:

   <img src='/path1.jpg' id="img1" runat="server" 
         visible='<%# ShowImg1(Eval("Item")) %>' />

    <img src='/path2.jpg' id="img2" runat="server" 
         visible='<%# ShowImg2(Eval("Item")) %>' />

Code-Behind:

protected boolean ShowImg1(object item)
{
     bool result = false;
     string item = object as string;
     // do your checks and return true or false;

     return result;
}

protected boolean ShowImg2(object item)
{
     bool result = false;
     string item = object as string;
     // do your checks and return true or false;

     return result;
}
0 голосов
/ 13 июля 2010
<img src='<# (Eval("imagepath") + string.Empty).Contains("keyword") ? Eval("imagepath") + string.Empty : Emal("Imagepath2") + string.Empty  %>' />

Eval ("") возвращает object

0 голосов
/ 13 июля 2010

Я изменил код, предложенный Риком Шоттом, на мой взгляд, лучше.

// Клиентская сторона

<img src='<%# ImgPath(Eval("items")) %>' id="Img" runat="server" />

// Серверная сторона

 protected string ImgPath(object items)
    {
        var result = "";
        if (items.ToString().ToLower().Contains("keyword"))
        {
            result = "path_to_image";
        }
        else if (items.ToString().ToLower().Contains("keyword2"))
        {
            result = "path_to_image_2";
        }
        else
        {                
            result = "path_to_image";
        }
        return result;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...