旋风

Communication comes from our hears and heads! my msn:youpeizun@hotmail.com


导航

搜索Repeater控件中有脚底模版中的服服器控件

Posted on 2007-04-07 22:24  xuanfeng  阅读(1033)  评论(0编辑  收藏  举报


存在问题:

我们不能在代码页中直接用服器控件的ID访问并操作Repeater控件中有脚底模版中的服服器控件

解决方法:

用控件的FindControl(id)方法来搜索到该控件后,就可以对该服务器控件进行操作了。

例如:
 
Repeater代码:
       <asp:Repeater ID="Repeater2" runat="server" OnItemCommand="Repeater2_ItemCommand">
        <HeaderTemplate >
     <div  style="width:100%; height:20; color:Green; background-color:Green;"></div>
        </HeaderTemplate>
       <ItemTemplate>
       <table>
       <tr>
       <td>
       <label id="id"><%# DataBinder.Eval(Container.DataItem,"CustomerID")%></label>
        <label id="Name"><%# DataBinder.Eval(Container.DataItem,"CompanyName")%></label>
       </td>
       </tr>
       </table>
      
       </ItemTemplate>
      
       <FooterTemplate   >
       <asp:LinkButton ID="Next" Text="Next" runat="server"></asp:LinkButton>
        <asp:LinkButton ID="Previous" Text="Previous" runat="server"></asp:LinkButton>
        <asp:DropDownList  ID="PageCount" runat="server"></asp:DropDownList>
       </FooterTemplate>
        </asp:Repeater>

要访问到该Repeater控件的脚底模版中的 ID="PageCount" 控件。
代码如下:

        DropDownList ddl = (DropDownList)this.Repeater2.Controls[this.Repeater2.Controls.Count - 1].FindControl("PageCount");
        if(ddl!=null)
        {
            for (int i = 0; i < PDS.PageCount;i++ )
            {
                ddl.Items.Add(i.ToString());
            }
        }

注意:一定要在Repeater控件中的最好了个服务器中才能查找到,要理清其层次关系,要不然就搜索不到了。