Hi yinyang205,
Refer below modified sample code as per your condition.
HTML
<asp:GridView runat="server" ID="gvDetails" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Print">
<ItemTemplate>
<asp:HyperLink runat="server" ID="h1" NavigateUrl="www.yahoo.com" Visible='<%# Convert.ToInt32(Eval("Column1")) == 0? true : false %>'
Text="Dave">
</asp:HyperLink>
<asp:Label ID="lblMary" Visible='<%# (Convert.ToInt32(Eval("Column1")) == 1) && (Eval("Column2").ToString() == "0" || string.IsNullOrEmpty(Eval("Column2").ToString())) ? true : false %>'
Text="Mary" runat="server" />
<asp:HyperLink runat="server" ID="h2" NavigateUrl="www.google.com" Visible='<%# Convert.ToInt32(Eval("Column1")) == 1 && Eval("Column2").ToString() == "1" ? true : false %>'
Text="Omar">
</asp:HyperLink>
</Hyperlink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[1].ConnectionString);
SqlCommand cmd = new SqlCommand("SELECT Column1,ISNULL(CONVERT(VARCHAR(5),Column2),'') AS Column2 FROM Bit", con);
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
gvDetails.DataSource = dt;
gvDetails.DataBind();
}
}
VB.Net
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings(1).ConnectionString)
Dim cmd As New SqlCommand("SELECT Column1,ISNULL(CONVERT(VARCHAR(5),Column2),'') AS Column2 FROM Bit", con)
con.Open()
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable()
da.Fill(dt)
con.Close()
gvDetails.DataSource = dt
gvDetails.DataBind()
End If
End Sub
OutPut