我在gridview中有一個超鏈接,我希望用戶點擊它,並將它們引導到特定頁面,並且還要傳入gridview(ID)的第一個字段或將其保留在會話中,在會議中。gridview中的超鏈接
鏈接只是靜態文本,所以無論他們點擊了什麼記錄,我都希望將它們放到同一頁面,但是可以使用該記錄ID。
只是不知道如何將其添加到超鏈接的NavigateUrl。
知道的任何線索,謝謝
我在gridview中有一個超鏈接,我希望用戶點擊它,並將它們引導到特定頁面,並且還要傳入gridview(ID)的第一個字段或將其保留在會話中,在會議中。gridview中的超鏈接
鏈接只是靜態文本,所以無論他們點擊了什麼記錄,我都希望將它們放到同一頁面,但是可以使用該記錄ID。
只是不知道如何將其添加到超鏈接的NavigateUrl。
知道的任何線索,謝謝
您可以在不使用代碼的情況下輕鬆在GridView的標記中生成URL。你需要做的是:
{0}
來代替。例如
<asp:Hyperlink DataNavigateUrlFields="ProductId" DataNavigateUrlFormatString="details.aspx?id={0} />
當控制在運行時呈現時,你會發現,對於每一行,{0}
由ProductID列的值替換。
請參閱String.Format和DataNavigateUrlFormatString瞭解更多詳情。
使用HyperLink控件,然後寫RowDataBound事件的事件處理函數,像這樣:
protected void OnRowDataBound(object source, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink hyperLink = e.Row.FindControl("hyperLinkID") as HyperLink;
// example, adjust this to your needs.
hyperLink.NavigateUrl = "~/detail.aspx?id=" + DataBinder.Eval(e.Row.DataItem, "ID");
}
}
不知道爲什麼你已經採取了服務器控件,而不是HTML標記之前。
有兩種方法可以做到這一點。
1)如果它是一個靜態鏈接只是頁面名稱的前綴並在標記後面添加id。 爲前
<a href='myPage.aspx<%#Eval("YourID")%>'><strong>Click me to navigate</strong></a>
2)給予一定的ID的標籤,並使其RUNAT服務器處理綁定事件的數據和值綁定到它。
protected void MyGridview_ItemDataBound(object sender, ListViewItemEventArgs e)
{
HtmlAnchor AncImage = e.Item.FindControl("AncImage") as HtmlAnchor;
AncImage.href="myPage.aspx"/id=" + DataBinder.Eval(e.Row.DataItem, "ID"); ;
//the id is the value that you want to append for redirection
}
感謝所有的答案傢伙 – DarkW1nter 2011-05-24 16:05:22