在Repeater中添加runat="server"的div,并控制其是否显示

aspx页代码:

<asp:Repeater ID="rptBlog" runat="server" DataSourceID="objBlog" OnItemDataBound="rptBlog_ItemDataBind">
                             <ItemTemplate>
                                   <div id="rptBlogTitle">
                                        <h3><a><%#eval_r("blogTitle") %></a></h3>
                                        (<%#eval_r("blogDate") %>)

                                    </div>
                                    <div id="divBlogEditDel" runat="server" visible="false">
                                       <a href="EditBlog.aspx">[编辑]</a>
                                         &nbsp;
                                       <a href="#">[删除]</a>
                                    </div>

                                    <div id="rptBlogTypeName">

                                    </div>
                                    <div id="rptBlogContent">
                                        <%#eval_r("blogContent") %>
                                    </div>
                                    <div id="rptBlogFooter">
                                    <a href="blogContent.aspx">查看全文</a>
                                    </div>
                                </ItemTemplate>
</asp:Repeater>

<asp:ObjectDataSource ID="objBlog" runat="server" TypeName="BlogGet" SelectMethod="GetBlog"/>

后台代码:

protected void rptBlog_ItemDataBind(object sender, RepeaterItemEventArgs e)
{
        if (Session["UserName"] != null)
        {
            if (Session["UserName"].ToString() == this.bc_UserName.GetBlog_UserName())
            {
                e.Item.FindControl("divBlogEditDel").Visible = true;
            }
        }
}

注意事项:
1。首先,不能将处理Repeater找子控件的代码放入Page_Load()的if(!Page.IsPostBack){}中,会找不到Item项,原理还没完全搞明白;
2。需要先判断Session[“UserName”] != null,否则,如果是匿名访问的话,会因为这一句:
Session[“UserName”].ToString()而提示“未将对象引用设置到对象实例”的错误。

感想:ASP.NET的数据绑定控件虽然用起来简单,但有时并不灵活,而且有些复杂的操作一般书上都不会介绍,如数据绑定控件的嵌套,内嵌控件的事件操作等,需要自己深入研究。

原文链接 http://blog.sina.com.cn/s/blog_541f0c810100mtgq.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值