首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gridview组件中嵌入的IF语句

gridview组件中嵌入的IF语句
EN

Stack Overflow用户
提问于 2015-03-31 19:25:28
回答 1查看 42关注 0票数 0

我希望在我的Grid-view列中有一个条件,它可能包含一个数字字符串(6-10位)或字符(3-6)。类似于:

代码语言:javascript
运行
复制
<asp:HyperLink ID="HL_Number" runat="server" Text='<%# Eval("Code")%>' Target="_blank"
NavigateUrl='<%# "http://www.address.com/" +  Eval("Code")%>'> Visible='<%  (IsNumber(Eval("Code"))==true)? true:false  %>'
</asp:HyperLink>

<br />

<asp:HyperLink ID="HL_String" runat="server" Text='<%# Eval("Code")%>' Target="_blank"
NavigateUrl='<%# "~/PDF/" +  Eval("Code")+"pdf" %>'   Visible='<%  (IsNumber(Eval("Code"))==false)? true:false  %>'>
</asp:HyperLink>

其中一个HyperLink必须同时可见,如何执行?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-31 19:45:56

从良好的设计角度来看,将此逻辑移动到您的业务层。假设这是你的实体

代码语言:javascript
运行
复制
public class MyEntity
{
   public int Id {get;set;}
   // ... some other properties
   public string Code {get;set;}

   // if you need some other control to be visible based on 
   // whether Code is a number or not, use this to bind to Visible property. 
   // Note, this is not required in case of HyperLink
   public bool IsVisible
   {
     { get {return IsNumber(Code); }
   }
   public string NavigateUrl
   { 
      get { return GetUrl(Code); }
   }
   private bool IsNumber(string code) { // your method body here }
   private string GetUrl(string code)
   {
       if(!IsNumber(code))
       {
          return string.Format("~/PDF/{0}pdf", code);
       }

       return string.Format("http://www.address.com/{0}",code);
   }
}

假设您的数据源是MyEntity对象的集合。

代码语言:javascript
运行
复制
    var dataSource = // some method that returns collection of MyEntity objects, 
                     // for example List<MyEntity>
    myGridView.DataSource = dataSource;
    myGridView.DataBind();

现在,在GridView中只保留一个HyperLink控件,并将其绑定到相应的属性。

代码语言:javascript
运行
复制
<asp:HyperLink ID="HL_String" runat="server" Text='<%# Eval("Code")%>' Target="_blank"
               NavigateUrl='<%# Eval("NavigateUrl") %>'>
</asp:HyperLink>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29367537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档