gpt4 book ai didi

c# - 在当前页面中找到一个控件

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:10 25 4
gpt4 key购买 nike

您好,我的问题是我似乎无法从当前页面找到控件。我的页面类具有以下代码:

        <div class="meeting_body_actions"> 
<efv:ViewMeetingActions ID="ViewMeetingActions" runat="server" />
</div>

我的控件有:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ViewMeetingActions.ascx.cs" Inherits="EFV.Controls.ViewMeetingActions" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>

Telerik:RadListBox runat="server" CssClass="RadListBox" ID="listbox_action_member" Width="125" Height="200px" Skin="Telerik" OnTransferring="ActionListBoxViewer_Transferring" OnDeleting="ActionListBoxViewer_Deleting" >
<ButtonSettings AreaHeight="30" Position="Bottom" HorizontalAlign="Center" />
<HeaderTemplate>
</HeaderTemplate>
<Items>
</Items>
<FooterTemplate>
<asp:DropDownList runat="server" ID="action_member_dropdown" Height="22" Width="125" ></asp:DropDownList>
</FooterTemplate>
</telerik:RadListBox

我需要从其他控件将信息放入“action_member_dropdown”;

  Control control = this.Page.FindControl("ViewMeetingActions");
-> doesnt work

Page page = HttpContext.Current.Handler as Page;
Control ViewMeetingActions = page.FindControl("ViewMeetingActions");
-> didnt work as well

Page test = this.Parent.Page;
-> no succes

如果我询问页面我有多少个控件,它说我有 1 个控件,而我添加了 5 个以上。

简而言之,如何从同一页面调用其他控件的控件?

最佳答案

如果一个控件嵌套在其他控件中,您需要递归地找到它。

这是一个辅助方法。它以递归方式搜索控件。

辅助方法

public static Control FindControlRecursive(Control root, string id)
{
if (root.ID == id)
return root;

return root.Controls.Cast<Control>()
.Select(c => FindControlRecursive(c, id))
.FirstOrDefault(c => c != null);
}

用法

var myControl =  (MyControl)FindControlRecursive(Page, "ViewMeetingActions"); 

关于c# - 在当前页面中找到一个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16562322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com