so erstellen Sie eine Verknüpfung im gridview in asp.net
Ich versuche zum erstellen einer Webseite, die ein gridview. das gridview soll ein link wie unten
http://localhost/Test.aspx?code=123
klickt der Benutzer auf eine der Zeilen " - link in der gridview haben, öffnet sich eine leere Seite und zeigen einige Ergebnis.
hier ist, wie ich das binden von Daten an das gridview-aber ich weiß nicht, wie man einen link darauf gesetzt
protected void Page_Load(object sender, EventArgs e)
{
string firma_no = logoFrmNr.ToString().PadLeft(3, '0');
string active_period = logoFrmPeriod.PadLeft(2, '0');
SqlConnection conn = new SqlConnection(conStr);
string selectSql = @"SELECT
LOGICALREF,
CODE ,
DEFINITION_ ,
FROM
LG_CLFLINE";
SqlCommand cmd = new SqlCommand(selectSql, conn);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
conn.Close();
}
hier ist das markup
<asp:GridView ID="GridView1" runat="server" EnableModelValidation="True">
</asp:GridView>
Wie kann ich einen link aus der Spalte "CODE"?
- Pls zeigen uns Ihre markup-code!
- Ich habe es oben
- Siehe: stackoverflow.com/questions/60919/is-sqlcommand-dispose-enough SqlConnection und SqlCommand sind nicht verwaltete Klassen. Ihr code wird wahrscheinlich zu hart, um Probleme zu erkennen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einen trick dazu. Die Hyperlinkcolumn wird nicht funktionieren, denn man kann nicht formatieren Sie den link. Sie wollen verwenden Sie eine boundfield und den text formatieren. Wie so
Alternativ können Sie mit einem templatefield-wenn Sie brauchen, um zu benennen, Bearbeiten und einfügen von Vorlagen.
HyperLink
- Steuerelement innerhalb einerTemplateField
und formatieren Sie die URL für die navigation, siehe meine Antwort.TemplateField
ist overkill, es sei denn, du machst ein edit oder eine Vorlage einfügen, es ist sehr nützlich für den Umgang mit den Daten verbindlich Ereignis (OnRowBound
), so dass Sie finden das control-ID anstatt auf Zelle index, weilBoundField
s nicht einID
Attribut.TemplateField
ist nicht übertrieben, es ist ganz notwendig. Aber, in diesem Szenario, das Plakat einfach machen will, einen hyperlink. Für die angeforderte Funktionalität schaffen ein ganzes template im Vergleich zu der Formatierung einer Zeichenfolge ist übertrieben.<asp:BoundField DataField="link" HeaderText="link" ReadOnly="True" htmlencode="false" DataFormatString="<a target='{0}' href='{0}'>{0}</a>" />
Fügen Sie diese zu Ihrem
Columns
definition in das markup für Ihre grid-Ansicht:mir wäre es so etwas wie
DataNavigateUrlFormatString
nicht wie das funktioniert. Ich wünschte, es Tat, aber es ist zum formatieren von numerischen Werten. msdn.microsoft.com/en-us/library/...Sollten Sie in der Lage sein zu verwenden HyperLinkColumn in Ihrem markup.
HyperlinkColumn Dokumentation