比如说一个表里面有3个字段“公司”“地址”和“网址”
想要编写代码,在DataGrid控件中显示两列“公司”和“地址”
在公司那一列使用超级链接绑定“网址”,点公司名字就可以进入该公司的网页
要如何实现呢?

解决方案 »

  1.   

    <asp:HyperLink ID="ling" NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.CommanyNanme") %>' text=Text='<%# DataBinder.Eval(Container, "DataItem.URL") %>'></asp:HyperLink>
      

  2.   

    在DataGrid的模板列中放一个HyperLink,然后:
      <!--下面的URL是你表中-->
    <asp:HyperLink ID="ling" NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.网址") %>'  Text='<%# DataBinder.Eval(Container, "DataItem.公司") %>'></asp:HyperLink>
      

  3.   

    <!--下面的网址是你表中网址字段名,公司也一样-->
      <!--下面HyperLink 就是放在DataGrid模板列中的HyperLink-->
    <asp:HyperLink ID="ling" NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.网址") %>'  Text='<%# DataBinder.Eval(Container, "DataItem.公司") %>'></asp:HyperLink>
      

  4.   

    对不起,我想问下这里的Contain,DataItem是什么?我要绑定的是表中的一个字段,跟这个DataItem有什么关系?
      

  5.   

    网址就是你绑定到DataGrid的表的字段名
      

  6.   

    see:DataBinder.Eval 方法 (Object, String)
    运行时计算数据绑定表达式。[C#]
    public static object Eval(
       object container,
       string expression
    );
    container 
    表达式根据其进行计算的对象引用。这必须是该页指定语言中的有效对象标识符。 
    expression 
    从 container 到要放置在绑定控件属性中的属性值的导航路径。这必须是以点分隔的字符串类型的属性或字段名称,如 C# 中的 Tables[0].DefaultView.[0].Price 或 Visual Basic 中的 Tables(0).DefaultView.(0).Price。备注
    尽管当您在 RAD 设计器中创建数据绑定时自动调用此方法,但如果希望简化转换为要在浏览器上显示的文本字符串的操作,则还可以以声明方式使用它。为此,必须将 <%# 和 %> 标记放在数据绑定表达式的两头;这些标记也用于标准 ASP.NET 数据绑定。
    当数据绑定到模板列表中的控件时,该方法尤其有用。
    警告   由于此方法在运行时使用反射执行后期绑定计算,因此与标准 ASP.NET 数据绑定语法相比,它会导致性能明显下降。
    对于所有的列表 Web 控件,如 DataList、DataGrid 或 Repeater,container 参数均应为 Container.DataItem。如果要针对页进行绑定,则 container 参数应为 Page。
    示例
    [Visual Basic, C#, JScript] 下面的示例说明如何以声明方式使用 DataBinder.Eval 以绑定到 Price 字段。本示例使用的容器语法假定您正在使用一个列表 Web 控件。[C#] <%# DataBinder.Eval (Container.DataItem, "Price") %>