LinkButton 与 HyperLink 的區別 及URL傳參方式
用法上最大的區別是LinkButton有Click事件﹐而HyperLink沒有。
其實說專業點﹕LinkButton支持回發﹐可以在鏈接到新頁面前﹐做一些其他處理﹐如檢驗輸入﹑重拼URL等。
而HyperLink則更像一個超鏈接﹐不會回發﹐所以也就處理不了其他的事務。
使用上﹐前者URL參數在PostBackUrl中指定﹐后者在NavigateUrl中指定。
如果LinkButton不聲明Click事件﹐則通過返回到客戶端的代碼可以看到是超鏈接﹐不過鏈接中有JS代碼﹐是專門為回發而設。如果有PostBackUrl的情況下﹐聲明了Click事件也不會回發。如果要讓其產生回發﹐則不能在代碼中指定Url.
而HyperLink完全就是一個鏈接。
這兩個控件都是鏈接類型﹐URL參數是必要的。主要說在頁面設計代碼里的綁定方式吧。
1.NavigateUrl='<%#"page.aspx?id="+Eval("id")%>' 這種方式就是拼接﹐因為URL是字符串﹐所有用几個加號就可以接上﹐方便﹐但可能不太安全。
2.NavigateUrl= '<%#String.Format(page.aspx?id={0},Eval("id"))%>' ,這種方式用標准的字符串格式化方法做﹐比較標准。是較好的風格。
當然﹐你也可以把格式化的方法放在后台去寫。
其實還有很多可以傳參數的方法。比如如果用GridView﹐里面的LinkField就很好用。但其內部還是用的上面的第二種方式。