可以,在ItemCreated中重写该列
if(e.Item.ItemIndex==-1) return;
//如果是手动创建,则知道字段A所在索引位置i的值,自动创建,通过检索数据源中列名"A"知道i的值
//字段B 的值j 的方法同上
if(e.Item[i].Text =="1")
{
    HyperLinkColumn h=new HyperLinkColumn();
    //... 设置h.相关属性
    h.Text=e.Item[j].Text;
    //h.ID="linkButton_"+h.Text  设置名称,最好在DataGrid中有一个关键字段,可以不重复。
    h.Click += new EventHandler(LinkButton_Click);
    e.Item[j].Controls.Add(h);
}

解决方案 »

  1.   

    <itemtemplate>
    <asp:label runat="server" text='<%# DataBinder.Eval(Container.DataItem,"列1") %>' visible='<%# IsVisible(DataBinder.Eval(Container.DataItem,"列1")) %>' ID="Label3" NAME="Label3"/>
    <asp:HyperLink Runat="server" Visible='<%# !IsVisible(DataBinder.Eval(Container.DataItem,"列1")) %>' /> 
    </itemtemplate>再写一函数
    private bool IsVisible(string str1)
    {
    return (str1==1);
    }
      

  2.   

    感谢楼上的几位高人指点,我还有一个小问题,我按hychieftain的:<asp:BoundColumn HeaderText="GCCODE" DataField="GCCODE" visible=false ReadOnly />
    <asp:BoundColumn HeaderText="区局" DataField="gcsx" ReadOnly />
    <asp:TemplateColumn>
    <HeaderTemplate>工程</HeaderTemplate>
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"GCMC") %>' Visible='<%# DataBinder.Eval(Container.DataItem,"Text") %>'/>
    <asp:HyperLink Runat="server"  Text='<%# DataBinder.Eval(Container.DataItem,"GCMC") %>' Visible='<%# DataBinder.Eval(Container.DataItem,"HyperLink") %>'
     NavigateUrl='js.aspx?GCCODE=<%# DataBinder.Eval(Container.DataItem,"GCCODE") %>&Year=<%=StrYear%>' />
    </ItemTemplate>
    </asp:TemplateColumn>我发现当显示HyperLink时,NavigateUrl无法把URL的参数绑定进去:在实际显示的DataGrid中,URL是:
    http://localhost/Gis/js/js.aspx?GCCODE=<%# DataBinder.Eval(Container.DataItem,"GCCODE") %>&Year=<%=StrYear%>。也就是说<%=StrYear%>和<%#…… %>部分在服务器端没有进行解析替换,这是怎么回事啊?如何解决?
      

  3.   

    [C#]
    ItemDataBound()事件里if (e.Item.ItemType == ListItemType.Item && e.Item.ItemType ==  ListItemType.AlternatingItem)
    {      
        ((HyperLink)e.Item.Cells[index of hlk].FindContrl("name of hlk here")).NavigateUrl = "js.aspx?GCCODE="+e.Item.Cells[0].Text+"&Year="+StrYear;
    }
      

  4.   

    错了
    if (e.Item.ItemType == ListItemType.Item && e.Item.ItemType ==  ListItemType.AlternatingItem)
    改为
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==  ListItemType.AlternatingItem)
      

  5.   

    //可以不改成模板列if(e.Item[i].Text =="1")
    {
        //... 设置j.相关属性
        e.Item[j].Text="<a href='js.aspx?GCCODE="+e.Item[i].Text+"&Year="+StrYear+"'>"+e.Item[j].Text+"</a>";
    }