none
请教怎么获取ListView的ItemTemplate里的控件 RRS feed

  • 问题

  • 我想在aspx.cs中获取LinkButton1 。 
    我是 这样写的 LinkButton linkButton = (LinkButton)ListView1.FindControl("LinkButton1"); 
    但是不可以,下面这个是代码请帮忙看看吧         
    <ItemTemplate>
                        <tr>
                            <th>
                                <asp:LinkButton ID="EditLinkButton" CommandName="Edit" title="编辑" runat="server"><%#Eval("name") %></asp:LinkButton>
                            </th>
                            <td>
                                <a href="?pid=<%#Eval("id") %>">进入</a>
                            </td>
                            <td>
                                <asp:LinkButton ID="LinkButton1" CommandName="Edit" title="编辑" runat="server">编辑</asp:LinkButton>
                            </td>
                        </tr>
                    </ItemTemplate>
    2009年8月25日 4:44

答案

  • 我这样弄可以了。
        protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
        {
            string pid = Request.QueryString["pid"];
          
            if (!string.IsNullOrEmpty(pid))
            {
                LinkButton linkButton = (LinkButton)e.Item.FindControl("LinkButton1");
                linkButton.Text = "删除";
            }
        }

    2009年8月25日 5:23

全部回复

  • 我这样弄可以了。
        protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
        {
            string pid = Request.QueryString["pid"];
          
            if (!string.IsNullOrEmpty(pid))
            {
                LinkButton linkButton = (LinkButton)e.Item.FindControl("LinkButton1");
                linkButton.Text = "删除";
            }
        }

    2009年8月25日 5:23
  • 你也可以在ItemDataBound事件处理程序中获取,或者自己遍历ListView的所有项来获取各项中的子控件,类似于这样:
    foreach(ListViewDataItem lvitem in ListView1.Items){
    LinkButton btn=lvitem.FindControl("LinkButton1") as LinkButton;
    if(btn!=null)
    btn.Text="删除";
    }
    Where there's a will there's a way
    2009年8月25日 9:50