2012-12-18 22 views
0

我有一個gridview。其數據源是從數據庫加載的數據表。在這個gridview中,我有一個模板列。如果條件進入Gridview Column設計

<asp:TemplateField HeaderText="Product Type" SortExpression="ProductID"> 
             <ItemStyle CssClass="MP-table-tb-display-item" /> 
             <ItemTemplate> 
              <div class="MP-table-tb-display-main"> 
               <asp:LinkButton ID="lnkview" CommandArgument='<%# Eval("ProductID") %>' CommandName="Viewproduct" 
                runat="server" CausesValidation="False" OnClick="lnkview_Click"><h4> 
             <%# Eval("Name") %> 
            </h4> 
               </asp:LinkButton> 
              </div> 
              <br /> 
              <div class="MP-table-tb-display"> 
               <p> 
                <span>KEY</span><%# Eval("[product_type_key]") %></p> 
               <br /> 

               <a target="_blank" href='<%# Eval("SourceURL") %>'>Source</a> 
              </div> 
             </ItemTemplate> 
            </asp:TemplateField> 

在此我想來源的超鏈接,只有當顯示可用到<%# Eval("SourceURL") %>數據。如果我無法將SourceURL值轉換爲RowDatabound Event。請指導我。

我也爲此計劃,但這不能正常工作。

<a target="_blank" href=' <%= Eval("SourceURL")!=null ? Eval("SourceURL") : "style='display: none'" %> />'> Source</a> 

回答

3

使用這個代替

同樣,你可以使用<a>標籤來控制它的可視性。 if條件將在Style attribue中進行,而不會在href屬性中進行。這樣

Style=display:Eval('some_val') == null ? none : block 
1

東西試試這個:

<a target="_blank" href='<%#(String.IsNullOrEmpty(Eval("SourceURL").ToString()) ? "" : Eval("SourceURL"))'%> style='display: none'>Source</a> 

感謝