对datagrid 自定义列值,然后,用<HyperLinkColumn>来绑定。
比如,我要绑定 “主题”列值,那么,这样写:
<asp:datagrid>
 <Columns>
   <asp:HyperLinkColumn DataNavigateUrlField="id" DataTextField="主题"  HeaderText="主题" DataNavigateUrlFormatString="要超链的页面">
   </asp:HyperLinkColumn>
 </Columns>
</asp:datagrid>

解决方案 »

  1.   

    楼上可能误解了我的意思,其实我是想要在程序中控制对DataNavigateUrlField和DataNavigateUrlFormatString两个参数的赋值,不知是否可行?
      

  2.   

    <itemtemplate>
       <asp:hyperlink runat="server" id="HL_Navigate"></asp:hyperlink>
    </itemtemplate>itemdatabound
    if(e.Item.ItemType==ListItemType.AlternatingItem || e.Item.ItemType==ListItemType.Item){
    //如果数据源是DataView
    DataRowView drv=(DataRowView)e.Item.DataItem;
    //找到要控制的控件
    HyperLink hl=(HyperLink)e.Item.FindControl("HL_Navigate");
    //根据不同的值指定HyperLink的不同属性
    if(drv[FiledName]==value1){
    hl.NavigateURL=URL1;
    hl.Text=Text1;
    }
    else if(drv[FieldName==value2]){
    }
    else{
    }
    }
      

  3.   


    <asp:datagrid>
     <Columns>
     <asp:TemplateColumn HeaderText="操作">
    <ItemTemplate>
    <a id="href1" runat=server >
     <asp:Label ID="Label1" Runat=server text=详细信息></asp:Label>
    </a>
    </ItemTemplate>
    </asp:TemplateColumn>
     </Columns>
    </asp:datagrid>
    private void ss()
    {
    HtmlAnchor h1;for (int i=0;i<myDataGrid.Items.Count;i++)
    {
     string s=三种不同值
     h1=(HtmlAnchor)myDataGrid.Items[i].FindControl("href1");
    switch (s)
    {
    case "1":
    h1.HRef=""
    break;
    .....

    }}

    }
      

  4.   

    有一个灵活的变通方法:你的<asp:HyperLinkColumn DataNavigateUrlField="目标列" DataTextField="目标列"  HeaderText="目标列名" DataNavigateUrlFormatString="forward.aspx?from={0}">这个forward.aspx用来作为页面扭转,它所带的参数from的值是你的”目标列“,你再在这个页面中根据这个目标列的三种不同值,把页面扭转到其它页面去。这个方法是可行的。
      

  5.   

    在数据库查询的时候就把超链接确定好,到DataGrid绑定就行了
      

  6.   

    将改列设为模板列,在绑定数据后根据条件为改列添加literalcontral
    for(int i=0;i<DataGrid1.Items.Count;i++)
    {
        string str_url = "";
        bool b  = true;
        if(b == true)
         {
            str_url = "<a href='aaa.aspx'>连接1</a>";
         }
        else
          {
             str_url = "<a href='bbb.aspx'>连接2</a>";
           }
        DataGrid1.Items[i].Cells[index].Control.Add(new LiteralContral(str_url));
    }