• 关于asp.net中Repeater控件的一些应用


        在Asp.net中,我是比较喜欢用Repeater这个控件,刚刚遇到的一个问题,怎么实现单击 <asp:LinkButton>,通过后台的单击事件获取同一行数据中的其他数据(对象)。

        1, 刚刚百度到一个RepeaterItem类,可以用来存储当前一行对象(至少在数据库读出来的时候是同一行的)所有对象;

        2, 使用方法  : 首先获取当前单击对象,使用当前单击对象的 Parent这个属性获得当前行  使用了数据绑定的对象集。实例如下:

            protected void Link1_Click(object sender, EventArgs e)
            {
                LinkButton lbl_1 = (LinkButton)sender;
                RepeaterItem item = (RepeaterItem)lbl_1.Parent;
                Label lbl_txt =  (Label)item.FindControl("lbl_txt");
                Script.Alert(lbl_txt.Text);
            }
    View Code

        3,注意事项  : 我觉得这个还是蛮重要的,便于自己以后查看。就是如果需要获取对象,获取的对象ID必须是后台变量,而且格式如下:

    <body>
        <form id="form1" runat="server">
            <ucl:Ctr_Header runat="server" ID="Ctr_Header_1" />
            <ul>
                <asp:Repeater runat="server" ID="Repeat_List">
                <ItemTemplate>
                    <li>
                        <span class="fr"><%# DataBinder.Eval(Container.DataItem, "newsDate") %></span>
                        <asp:LinkButton runat="server" ID="Link1" OnClick="Link1_Click" Text='<%# DataBinder.Eval( Container.DataItem, "title") %>'>
    </asp:LinkButton>
    <asp:Label runat="server" ID="lbl_txt" CssClass="fl" ><%# DataBinder.Eval(Container.DataItem, "oprDate") %></asp:Label>
    </li>
    </ItemTemplate>
    </asp:Repeater>
        </ul>
    <ucl:Ctr_Footer runat="server" ID="Ctr_Footer_1" />
    </form>
    </body>

      必须使绑定的数据要跟ID在同一个中括号(<>)里面,一般存在Text属性中,如果将对象放在<asp:TextBox runat="server" ID="txt"><

    %# DataBinder.Eval( Container.DataItem, "title") %></asp:TextBox>中是无效的,也就是无法获取该元素的ID,无法获取该文本框。切记!!!

    ></asp:TextBox>

    使用数据绑定时:先判断

        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    protected void major_kind_DataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    LinkButton lbt_Update = (LinkButton)e.Item.FindControl("lbt_Update");
                    LinkButton lbt_Save = (LinkButton)e.Item.FindControl("lbt_Save");
                    LinkButton lbt_Del = (LinkButton)e.Item.FindControl("lbt_Del");
                    //  txt_Num = (TextBox)e.Item.FindControl("txt_Num");
                    //  input_Name = (TextBox)e.Item.FindControl("input_Name");
                    //  lbt = lbt_Save;  //  用来触发 文本框,
    
                    //  数据更新
    
                }
            }
    

      

    OK,记录完毕,继续!!!加油!!!

  • 相关阅读:
    步步为营 .NET三层架构解析 六、BLL的设计
    js/jquery 获取url参数
    C# 生成XML
    Microsoft Ajax Minifier 使用综合
    公司面试题目之取出数据库中重复的记录
    关于下拉菜单(dropdownlist)一些用法心得
    数据库事务日志已满的解决办法
    Asp.Net[C#] 使用GridView 分页,编辑,删除,导出XML完整页面
    SQL Update
    如何安装ASPAJAXExtSetup.msi
  • 原文地址:https://www.cnblogs.com/xxjudfc/p/3388884.html
Copyright © 2020-2023  润新知