Click to See Complete Forum and Search --> : hyperlinkfields in gridview or what else?
ninhovid
September 4th, 2007, 02:13 PM
hi...
im trying to do this in runtime:
FIELD1 FIELD2 FIELD3
-----------------------------------------------------
recorddata1 recorddata1 recorddata1
recorddata2 recorddata2 recorddata2
but i want FIELD2-RECORDDATA1 and FIELD3-RECORDDATA2 to be highlighted, i mean, as links to another page, like this
for FIELD2-RECORDDATA1 = somepage.aspx?value=FIELD2-RECORDATA1
for FIELD3-RECORDDATA2 = somepage.aspx?value=FIELD3-RECORDATA2
they both are in different columns, and i dont want the whole FIELD2 or FIELD3 columns highligthed (or hyperlinked)
is this possible?
thanks in advance...
jasonli
September 4th, 2007, 04:55 PM
This way is not the best, it works though.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Height="225px" Width="498px">
<Columns>
<asp:BoundField DataField="Field1" HeaderText="Field1" />
<asp:TemplateField HeaderText="Field2">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Field2") %>'></asp:Label>
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="" Text='<%# Eval("Field2") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Field3">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Field3") %>'></asp:Label>
<asp:HyperLink ID="HyperLink3" runat="server" NavigateUrl="" Text='<%# Eval("Field3") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Codebehind:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Field1", Type.GetType("System.String")));
dt.Columns.Add(new DataColumn("Field2", Type.GetType("System.String")));
dt.Columns.Add(new DataColumn("Field3", Type.GetType("System.String")));
dt.Columns.Add(new DataColumn("Field4", Type.GetType("System.String")));
DataRow dr = dt.NewRow();
dr["Field1"] = "row1";
dr["Field2"] = "row1Field2";
dr["Field3"] = "row1Field3";
dr["Field4"] = "Field2";
dt.Rows.Add(dr);
DataRow dr2 = dt.NewRow();
dr2["Field1"] = "row2";
dr2["Field2"] = "row2Field2";
dr2["Field3"] = "row2Field3";
dr2["Field4"] = "Field3";
dt.Rows.Add(dr2);
GridView1.DataSource = dt;
GridView1.DataBind();
for (int i = 0; i < GridView1.Rows.Count; i++)
{
string strField1 = GridView1.Rows[i].Cells[0].Text;
DataRow[] drs = dt.Select("Field1='" + strField1 + "'");
if (drs[0]["Field4"].ToString() == "Field2")
{
GridView1.Rows[i].FindControl("Label2").Visible = false;
((HyperLink)GridView1.Rows[i].FindControl("HyperLink2")).NavigateUrl = "nextpage.aspx?value=" + drs[0]["Field2"].ToString();
}
else
{
GridView1.Rows[i].FindControl("Label2").Visible = true;
GridView1.Rows[i].FindControl("HyperLink2").Visible = false;
}
if (drs[0]["Field4"].ToString() == "Field3")
{
GridView1.Rows[i].FindControl("Label3").Visible = false;
((HyperLink)GridView1.Rows[i].FindControl("HyperLink3")).NavigateUrl = "nextpage.aspx?value=" + drs[0]["Field3"].ToString();
}
else
{
GridView1.Rows[i].FindControl("Label3").Visible = true;
GridView1.Rows[i].FindControl("HyperLink3").Visible = false;
}
}
Hope it helps.
ninhovid
September 4th, 2007, 06:10 PM
ok, i'll give it a try...
thanks...
codeguru.com
Copyright Internet.com Inc., All Rights Reserved.