모든 사람이 게시 한 이후 코드 :
<a href='showproduct.aspx?productid=<%#Eval("ProductID")%>'>View Details</a>
showproduct.aspx 사용 Page.Request.QueryString 제품을 얻을 컬렉션 : 아래의 예를 확인 aspx 페이지 내가 코드를 모두 뒤에있는 코드에서 필요한 모든 코드를 게시 할 것입니다.
당신이 컨트롤이 필요합니다 중계기에 첫째 :
<asp:Repeater>
<ItemTemplate>
<asp:HyperLink ID="hrefLink"
href="http://www.mysite.com/somepage.aspx?id={0}&more={1}"
OnDataBinding="hrefLink_DataBinding">
</asp:HyperLink>
</ItemTemplate>
</asp:Repeater>
가 그런 뒤에 코드에 링크 세부 사항을 기입하는 데이터 바인딩을 구현이의 장점이 있다는 것입니다
protected void hrefLink_DataBinding(object sender, System.EventArgs e)
{
HyperLink link = (HyperLink)(sender);
// Fill in your links details
link.NavigateUrl = string.Format(link.NavigateUrl,
Eval("ID").ToString(), Eval("More").ToString());
link.Text = Eval("LinkTitle").ToString();
}
을 당신은 쉽게 코드의 톤과 aspx 페이지를 어지럽히 지 않고 필요할 때 더 많은 논리를 쉽게 추가 할 수 있습니다. 이 방법을 인라인하는 것이 더 좋지만 두 가지 모두 유효한 솔루션이며 선호도가 더 좋습니다.
링크가 어디로 이동할지 미리 정의하지 않으려면 위의 데이터 바인딩 코드를 변경하여 전체 NavigateUrl을 원하는대로 다시 작성할 수 있습니다. 그래서 당신은 다른 페이지로 리다이렉트 할 수있는 몇 가지 평가 된 값에 기초합니다. 가장 사용자 정의가 가능한 솔루션입니다.
사이드 노트 : 불필요한 톤이 필요하지 않으므로 리피터에서 ViewState를 해제해야합니다.
내가 바꿀 까? id =? 같은 것을? id = 0, 사용하고 있기 때문에? 자리 표시 자로 인해 쿼리 문자열이 어떻게 작동하는지 몰라도 혼란 스러울 수 있습니다. –
감사합니다. 제이슨이 그것을 지적 해주었습니다 :) – azamsharp
이 ID를 보낼 때, 그 페이지에서 어떻게 얻을 수 있습니까? –