为网格视图中的每个数据设置不同的超链接
本文关键字:设置 超链接 数据 网格 视图 | 更新日期: 2023-09-27 18:31:27
我正在尝试从数据库添加指向gridview
stockName
的超链接。我设法使超链接仅指向单个页面。如何为不同的股票名称添加不同的网址超链接?
我要为第一个股票名称添加的 url 是 gentingdisplay.aspx
,第二个是pangkordisplay.aspx
,第三个是langkawidisplay.aspx
等等。
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataSourceID="SqlDataSource2" ForeColor="#333333"
GridLines="None">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:BoundField DataField="StockID" HeaderText="Stock ID"
SortExpression="StockID" />
<asp:HyperLinkField
DataNavigateUrlFields="StockName"
DataNavigateUrlFormatString="gentingdisplay.aspx?StockID=0"
HeaderText="Stock Name"
SortExpression="StockName"
DataTextField="StockName" />
<asp:BoundField DataField="StockPrice" HeaderText="Stock Price"
SortExpression="StockPrice" />
<asp:BoundField DataField="UnitAvailable" HeaderText="Unit Available"
SortExpression="UnitAvailable" />
正如 DataNavigateUrlFields 的文档所述,您可以提供一个逗号分隔的字段列表,以便在 DataNavigateUrlFormatString 中使用。
因此,如果我正确理解您并且您希望StockName
构成超链接路径的一部分并在 StockID 查询字符串中传递StockID
,您可以在HyperLinkField
中使用它:
<asp:HyperLinkField
DataNavigateUrlFields="StockName,StockID"
DataNavigateUrlFormatString="{0}display.aspx?StockID={1}"
HeaderText="Stock Name"
SortExpression="StockName"
DataTextField="StockName" />
这里{0}
映射到StockName
,{1}
映射到StockID
,使用标准的String.Format
语法。
你可能想要
<asp:HyperLinkField DataNavigateUrlFields="StockName"
DataNavigateUrlFormatString="{0}display.aspx"
HeaderText="Link"
SortExpression="StockName"
DataTextField="StockName" />
但是,我认为使用以这种方式设计的页面组织您的网站可能是不好的做法 - 可能很难维护。