代码之家  ›  专栏  ›  技术社区  ›  Serhat Ozgel

如何访问listview的layouttemplate中的控件?

  •  12
  • Serhat Ozgel  · 技术社区  · 16 年前

    ListView LayoutTemplate 从背后的代码?

    <asp:ListView ...>
    <LayoutTemplate>
    <myprefix:MyControl id="myControl" ... />
    </LayoutTemplate>
    ...
    </asp:ListView>
    

    myControl.SomeProperty = somevalue;
    

    ItemTemplate ,它在 布局模板 ,因此并非所有项目都存在,它只存在一次。所以我应该能够访问它一次,而不是针对每个数据绑定项。

    6 回复  |  直到 15 年前
        1
  •  18
  •   Ben Rabidou    14 年前
    var control = (MyControl)myListView.FindControl("myControlId");
    

    这将起作用,但请确保在数据绑定后执行此操作,否则将不会创建LayoutTemplate,从而引发错误。

        2
  •  12
  •   DSD-SICO DSD-SICO    15 年前

    要设置LayoutTemplate内控件的属性,只需在ListView控件上使用FindControl方法。

    var control = (MyControl)myListView.FindControl("myControlId");
    
        3
  •  1
  •   chakrit Dutchie432    16 年前

    使用 FindControl 方法对每个ListViewItem执行。

    var control = (MyControl)Item.FindControl("yourControlId");
    
        4
  •  1
  •   Community CDub    8 年前

    这已在堆栈溢出问题中得到回答:
    Access a control inside a the LayoutTemplate of a ListView

    见塔纳索斯对公认答案的评论。

        5
  •  0
  •   Brian Mains    15 年前

    将创建布局,并触发LayoutCreated事件,该事件表示已在系统中创建布局。

        6
  •  0
  •   Jeff    6 年前

    如果您需要VB.net版本,请参阅:

    Dim control = CType(myListView.FindControl("myControlId"), MyControl)