日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Repeater控件使用总结

發布時間:2025/3/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Repeater控件使用总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以前喜歡用gridview來顯示數據,在面試一家外包公司時,他們對gridview嗤之以鼻,說:“微軟很多自己的控件都不用,控件只是為了入門,我們只用repeater”,我不知道gridview和repeater誰更強大,但都了解一下不是壞事,其中也不全是Repeater的總結,也包括javascript等。

使用repeater可以很方便的綁定數據到表格,到控件的屬性,這對于數據的每一行處理來說至關重要,比如說有一行數據,后面有一個刪除按鈕,可以將這行數據的主鍵綁定到刪除按鈕的CommandArgument上,在repeater控件的ItemCommand事件上來處理這些事情。

<td> <asp:Button ID="btnAuthorized" Text="取消授權" runat="server" CommandName="Authorized" CommandArgument='<%#Eval("Id") %>' /> </td> <td> <div onclick="javascript:return Del()"> <asp:Button ID="btnDel" Text="刪除" runat="server" CommandName="Del" CommandArgument='<%#Eval("Id") %>' /></div> </td>

ItemCommand事件

protected void repUnAuthorized_ItemCommand(object source, RepeaterCommandEventArgs e){try{if (e.CommandName == "Authorized"){long Id = long.Parse(e.CommandArgument.ToString());//do something }else if (e.CommandName == "Del"){long Id = long.Parse(e.CommandArgument.ToString());//do something }}catch (Exception){throw;}}

遍歷數據也很方便,但是要注意一點,在repeater里的服務器端控件需要調用FindControl方法才能得到

protected void btnAllDel_Click(object sender, EventArgs e){try{for (int i = 0; i < repUnAuthorized.Items.Count; i++){CheckBox chk = (CheckBox)repUnAuthorized.Items[i].FindControl("chk");if (chk.Checked == true){Button btnDel = (Button)repUnAuthorized.Items[i].FindControl("btnDel");long Id = long.Parse(btnDel.CommandArgument.ToString());//do something }}}catch (Exception){throw;}}

能夠遍歷數據,能夠控制每一行的行為,完成一般的需求綽綽有余,并且樣式布局完全可控,美中不足就是沒有EmptyTemplate,當數據為空時,沒有友好提示,但是,上帝為你關上了一扇門必定打開一扇窗,當數據為空時,我們有更加巧妙的方法

<FooterTemplate><tr><td colspan="12"><asp:Label ID="lblNoData" runat="server" Visible="<%#repUnAuthorized.Items.Count==0%>"Text="沒有您需要的數據!"></asp:Label></td></tr> </FooterTemplate>

這樣我們就能友好的提示了

關于一些友好的界面,比如說對于刪除操作,很可能造成誤刪的情況,需要在刪除前確認,這些東西如果放到服務器端也能實現,但是javascript就沒有存在價值了,對于確認之類的操作確實可以放到客戶端,而對于校驗,客戶端可有可無,但是服務器端必須有,想起不知誰說的一句話“永遠不要相信客戶的輸入”。

function Del() {if (confirm("確定要刪除?")) {return true;}else {return false;}}

實際運用

<div style="float: left;" onclick="javascript:return Del()"> <asp:Button ID="btnAllDel" Text="刪除" runat="server" OnClick="btnAllDel_Click" /></div> </div>

當返回位false的時候,btnAllDel是不會被點擊到的,很強大,就總結到這里。

?

?

?

轉載于:https://www.cnblogs.com/HelloMyWorld/archive/2013/01/25/2876251.html

總結

以上是生活随笔為你收集整理的Repeater控件使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。