gpt4 book ai didi

c# - 将用户控制类传递给主机页面

转载 作者:行者123 更新时间:2023-11-30 17:21:53 25 4
gpt4 key购买 nike

我如何将用户控件属性传递给页面并使这些属性可用于页面上的所有方法(而不仅仅是在控制操作上触发的一种方法,例如 onControlClick)

我基本上有 3 个页面:

  • 用户控制(ascx/cs)
  • 类 (cs) - 包含用户控件属性
  • 主机页面 (aspx/cs) - 引用用户控件

用户控件由 3 个相互关联的下拉菜单组成。我成功地将这些下拉值通过类传递到页面上,方法是通过用户单击下拉菜单时触发的事件。因此,通过这种方式,主机页面可以持续了解用户控件中的值。但是,我希望页面在其所有方法上都使用控件的属性(存储在一个类中)——如何让这个用户控件类对所有人可用?

顺便说一句,我也在使用 ASP.NET 和 C#。

这是代码(这里不共享完整代码 - 只是类似代码块的片段)

在菜单宿主页面的 ASPX 上:

<linked:LinkMenu2 id="Menu1" runat="server" OnLinkClicked="LinkClicked" />

主机页面 (cs):

protected void dropdownclicked(object sender, ddtestEventArgs e)
{
if (e.Url == "Menu2Host.aspx?product=Furniture")
{
lblClick.Text = "This link is not allowed.";
e.Cancel = true;
}
else
{
// Allow the redirect, and don't make any changes to the URL.
}
}

主机页面 (aspx)

<asp:dropdowncustom ID="dddone" runat="server" OnddAppClicked="dropdownclicked" />

控制(cs)

public partial class usercontrol_tests_dropdown1 : System.Web.UI.UserControl
{
public event ddtestEventHandler ddAppClicked;
}

public void selectapp_SelectedIndexChanged(object sender, EventArgs e)
{
ddtestEventArgs args = new ddtestEventArgs(selectlink.SelectedValue);
ddAppClicked(this, args);
}

类:

public class ddtestEventArgs : EventArgs
{
// Link
private string link;
public string Link
{
get { return link; }
set { link = value; }
}

public ddtestEventArgs(string link)
{
Link = link;
}
}

public delegate void ddtestEventHandler(object sender, ddtestEventArgs e);

最佳答案

希望这就是您所追求的。最好的方法是将您的控件公开为用户控件的公共(public)属性。因此,在您的用户控件中,为每个下拉列表添加一个属性:

public DropDownList DropDown1
{
get { return dropDownList1; }
}

public DropDownList DropDown2
{
get { return dropDownList2; }
}

您可以对要在主机页面上访问的任何其他属性执行相同的操作:

public string DropDown1SelectedValue
{
get { return dropDownList1.SelectedValue; }
set { dropDownList1.SelectedValue = value; }
}

然后,您可以从您的主机页面通过用户控件访问属性:

string value = UserControl1.DropDown1SelectedValue;

string value = UserControl1.DropDownList1.SelectedValue;

这里有几个其他已回答的问题,我认为(如果我理解正确的话)您可能会觉得这些问题很有用,这就是您正在做的事情:

关于c# - 将用户控制类传递给主机页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111547/

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