2011-01-04 7 views
2

I auto Kurzansicht generiert haben, wird es erzeugt, wie:Set Spalte als Hyperlink in Automatisch erzeugt Grid

gvOffer.DataSource = offer.View(ddlResult.SelectedValue); 
gvOffer.DataBind(); 

I die erste und die zweite Spalte als Hyperlink einstellen müssen. Mit anderen Worten, die Zeilen unter der 1. und 2. Spalte müssen im Hyperlink-Zustand sein. Was soll ich machen? Die meisten Antworten, die ich gefunden habe, fordern mich auf, auto-generated auf false zu setzen, was ich zu vermeiden versuche.

Antwort

3

Sie können die Dataformatstring-Set in Form einer URL zu sein, wie hier gezeigt: http://forums.asp.net/p/1127741/1780013.aspx

leicht modifiziert - Sie werden den Formatstring in Code-behind kurz vor dem DataBind tun() Rufaufbau müssen. (Code nicht getestet, leider bin ich nicht an meinem Dev PC)

gvoffer.Columns[0].DataFormatString = "<a href=\"http://mywebsite/page.aspx?q={0}\">{0}</a>" 
gvoffer.Columns[0].HtmlEncode = false; 

Seien Sie sicher, dass die Htmlencode Eigenschaft der Spalte auf „false“ setzen oder die URL wird nur Htmlencoded und unbrauchbar werden (obwohl ich in der zu sehen Link unterhalb dieser gilt dies nur für .NET 3.0 und früher.)

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.dataformatstring.aspx

1
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      string value = e.Row.Cells[0].Text; 
      e.Row.Cells[0].Text = Convert.ToString("<a href=\"Office.aspx?number=" + value + "\">" + value + "</a>"); 
     } 
    } 
Verwandte Themen