2012-02-01 81 views
1

我有以下代碼行來評估值是true還是false,如果它是true,它將顯示圖像,如果它的false顯示不同的值。如何基於gridview中的字段值設置ImageUrl

<itemTemplate> 
<img alt="" id="Img1" 
src='<%# MyAdmin.GetCheckMark((bool)DataBinder.Eval(Container.DataItem, "ShowImg"))%>' 
runat="server" /></ItemTemplate> 

我可以自定義在C#中的後端代碼的評估和演示部分,然後通過不同的變量,它例如在C#我想要做的

bool ImgFlag = false; 
    if(Entity.ShowImg == false && Entity.SomethingElse == true) 
    { 
     ImgFlag = true; 
    } 
    else if(Entity.ShowImg == false && Entity.SomethingElse == false) 
    { 
     ImaFlag = false; 
    } 
    else 
    { 
     ImgFlag = true; 
    } 

然後我想用ImgFlag而不是在每行的GridView中顯示ShowImg,因此ImgFlag將決定顯示哪個標誌。

或者還有更好的方法嗎?

問題是,該eval現在取決於兩件事情..不像以前一樣。

謝謝

回答

2

這是否把戲

<asp:TemplateField ShowHeader="False"> 
<ItemTemplate> 
    <asp:Image runat="server" ImageUrlt='<%#(bool)Eval("bit_field")? "first.jpg":"second.jpg" %>'> 
    </asp:Image> 
</ItemTemplate> 

或者這

<asp:TemplateField HeaderText="YourField"> 
<ItemTemplate> 
    <asp:ImageButton runat="server" ImageUrl="True.jpg" Visible='<%# (bool)Eval("bit_field") %>' /> 
    <asp:ImageButton runat="server" ImageUrl="False.jpg" Visible='<%# !(bool)Eval("bit_field") %>' /> 
</ItemTemplate>  

發現在this question


1

評估和演示實際返回的屬性,所以你可以把它叫做兩次不同的屬性。

MyAdmin.GetCheckMark2((bool)DataBinder.Eval(Container.DataItem, "ShowImg"), 
     (bool)DataBinder.Eval(Container.DataItem, "SomethingElse")); 

可以幫助

+0

但我怎麼能夠調節它..像我需要ShowImg檢查其假,如果SomethingElse爲True,反之亦然 – user710502 2012-02-01 18:07:16