牛腩新聞釋出系統之repeater控制元件
阿新 • • 發佈:2018-12-31
進行了牛腩新聞釋出系統,運用到了許多之前沒有學習過的新的控制元件,特此總結一下,以待後時之需
資料控制元件:Repeater
Repeater控制元件,可用來一次顯示一組資料項,比如可以用它們顯示一個數據表中的所有行。
優點:
Repeater控制元件完全由模板驅動,提供了最大的靈活性,可以任意設定它的輸出格式。同時它的靈活性還體現在它不僅可以放到.net中,完全可以自由發揮,想怎麼顯示就怎麼顯示,還可以把它放在JavaScript程式碼中。
模板:
Repeater支援一下五種模板
- ItemTemplate:對每一個數據項進行格式設定【Formats each item from the data source】
- AlternatingItemTemplate:對交替資料項進行格式設定
- SeparatorTemplate:對分隔符進行格式設定
- HeaderTemplate:對頁首進行格式設定
- FooterTemplate:對頁尾進行格式設定
以上,英文中使用了Formats item from datasource這樣的話,就說明Repeater控制元件主要是用來對資料進行format的,控制資料怎麼樣排列,怎麼樣顯示。
Repeater必須使用的是Itemtemplate,其他型別的模板按需新增
事件處理:
Repeater控制元件有以下事件
● DataBinding : Repeater控制元件繫結到資料來源時觸發
● ItemCommand : Repeater控制元件中的子控制元件觸發事件時觸發
● ItemCreated : 建立Repeater每個專案時觸發
● ItemDataBound : Repeater控制元件的每個專案繫結資料時觸發
例項:
前端程式碼:
<asp:Repeater ID="repNews" runat="server"> <ItemTemplate> <tr> <td><%#Eval("id") %></td> <td><a href='../newscontent.aspx?newsid=<%#Eval("id") %>' target="_blank"><%#Eval("title") %></a></td> <td><a href='modnews.aspx?newsid=<%#Eval("id") %>' target="_blank">修改</a></td> <td> <asp:LinkButton ID="lbtnDel" OnClientClick ="return confirm('刪除新聞會連同其下評論一起刪除,是否刪除?')" OnClick="lbtnDel_Click" CommandArgument='<%#Eval("id") %>' runat="server">刪除</asp:LinkButton> </td> </tr> </ItemTemplate> </asp:Repeater>
後端程式碼:
protected void Page_Load(object sender, EventArgs e)
{
//判斷session裡面是否存在管理員
if (Session["admin"] != null && Session["admin"].ToString() == "sa")
{
//已登入
if (!Page.IsPostBack)
{
BindNews();
//查詢出了記錄的總數
AspNetPager1.RecordCount = new NewsManager().SelectAll().Rows.Count;
}
}
else
{
//未登陸
Response.Redirect("/admin/login.aspx");
}
}
private void BindNews()
{
repNews.DataSource = new NewsManager().FenYeSelectALL (AspNetPager1.StartRecordIndex,AspNetPager1.StartRecordIndex +9);
repNews.DataBind();
}