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"))%> <%# String.Format(Emag_Enter.aspx?nian={0}&qihao={1}, (DataBinder.Eval(Container.DataItem, "nian ")).ToString(), (DataBinder.Eval(Container.DataItem, "qihao ")).ToString()) %>' ,這種方式用標准的字符串格式化方法做﹐比較標准。是較好的風格。

當然﹐你也可以把格式化的方法放在后台去寫。

其實還有很多可以傳參數的方法。比如如果用GridView﹐里面的LinkField就很好用。但其內部還是用的上面的第二種方式。

你可能感兴趣的:(button)