Hinzufügen von Link-Spalte zu ASP.NET GridView
Ich möchte die Ausgabe einer Liste von Schlagzeilen, die anklickbar sind. So weit ich es bekommen kann zum ausdrucken einer Liste mit überschriften, weil ich gezogen und die NewsHeadline Tabelle in der Ansicht-designer im VS 2010. Wie denken Sie, ich sollte die machen die Listen-Elemente anklickbar? Ich schaute für ein URL-Attribut, aber ich habe es nicht gesehen. Muss ich wickeln Sie Sie in ein < ein href ?
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1"
EmptyDataText="There are no data records to display.">
<Columns>
<asp:BoundField DataField="NewsHeadline" HeaderText="NewsHeadline"
SortExpression="NewsHeadline" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>"
ProviderName="<%$ ConnectionStrings:ConnectionString1.ProviderName %>"
SelectCommand="SELECT [NewsHeadline] FROM [NewsTable]"></asp:SqlDataSource>
</form>
InformationsquelleAutor der Frage patrick | 2009-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die Spalte Typ aus einer BoundColumn zu einer Hyperlink Spalte.
Zusätzlich zu dieser änderung, Sie brauchen, um stellen Sie sicher, dass Sie auswählen, wird die URL oder etwas, das Sie verwenden können, zu erstellen, der link zum news-Artikel. In dem Beispiel oben, ich nehme an, die URL ist etwas, was Sie können, greifen Sie von Ihrem SQL-Quelle. Wenn es eine ID ist, geben Sie einfach den rest der url... "~/MyNewsPage.aspx?NewsID={0}"...
InformationsquelleAutor der Antwort RSolberg
Verwenden hyperlinkfield statt :
InformationsquelleAutor der Antwort Canavar
Benötigen Sie ein hyperlink-Feld anstelle eines BoundField, etwa so:
InformationsquelleAutor der Antwort Scott Kirkland
Etwas wie dies funktionieren wird fantastisch, wie eine Lösung in Visual Studio 2010.
GridView
in die Designer-Registerkarte in Ihrem Web-Seite in VS.GridView
und klicken Sie auf den Pfeil in der oberen rechten.SELECT News_Id, NewsHeadline FROM NewsHeadline
SqlDataSource
die jetzt dieDataSource
IhrerGridView
.GridView
in der Registerkarte "Source" und ersetzen durch folgenden code.Code:
Und Sie sind alle gesetzt. Dadurch wird eine Liste aller Überschriften als hyperlinks mit einer dynamisch generierten einzigartigen link zu der
newsdetails.aspx
Seite Komplimente von den query-string haben wir mit Hilfe derPRIMARY KEY
News_Id
entsprechendenNewsHeadline
Eintrag in der NewsHeadline Tabelle.Dann beim laden der
newsdetails.aspx
Seite, die Sie verwenden:Request.QueryString["News_Id"]
um dieNews_Id
Wert aus der URL, und verwenden Sie es, um die Abfrage der Datenbank für die Informationen über die spezifischeNewsHeadline
auf die geklickt wurde. Sie können dann das Ergebnis der Abfrage auf der Webseite.InformationsquelleAutor der Antwort Derek W
Den HyperLinkField gut funktionieren wird, wie andere haben darauf hingewiesen. Aber, falls Sie wollen, dass die gesamte Zeile klickbar, können Sie eine benutzerdefinierte server-control implementiert, dass ein GridView vorgeschlagen, in der SO ein post "Wir machen eine ganze Zeile klickbar in einem gridview".
Check-out die Frage, die ich gepostet auf gewusst wie: implementieren Sie eine C# - custom server control auf, es umzusetzen.
Nur eine weitere option.
InformationsquelleAutor der Antwort Eddie