gpt4 book ai didi

c# - 使用 C# 将单个 Int 从一个用户控件传递到另一个用户控件

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

我在一个 ASPX 页面中有两个用户控件。我只想在页面加载期间将一个 int 从一个控件传递到另一个控件。

我已经尝试了这里的几个示例,但没有一个起作用 - 抱歉,我的意思是我无法让它们起作用!这是我得到的:

默认.ASPX

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ucBottom.varBottomID = ucTop.varBottomID;
}
}

优图普

public partial class ucTop : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
int varBottomID = 100;
}
}

UC底部

public partial class ucBottom : System.Web.UI.UserControl
{
public int varBottomID { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
BottomText.Text = Convert.ToUInt32(varBottomID).ToString();
}
}

除了 BottomText.Text 返回 0 而不是 100 之外没有任何错误。还有 int varBottomID = 100;声明它已分配但从未使用过(ucTop)。

从此处的一个答案来看,一个 UC 不了解另一个 UC 并使用父级传递数据是一种很好的做法。但可惜不适合我。

一如既往,我们将不胜感激(但采用以下虚拟指南格式!)。

编辑 - 抱歉,默认代码中出现错字...

最佳答案

在您的主页中,它并没有真正改变任何东西——它正在将 ucBottom.varBottomID 设置为其自身。 (编辑:似乎已修复)

ucTop 中,int varBottomID = 100; 什么都不做——它在函数内部设置了一个变量,该变量不可见外面。

这两个问题的结果是您永远无法从 ucTopucBottom 进行任何通信。

(顺便说一句,约定是以大写字母开头的类名,以小写字母开头的实例名。从代码中看,无论您是试图访问类的静态成员还是实例成员,都不是很明显。来自在这里,我假设你有一个 ucBottom 控件,它是 ucBottom 类的一个实例,对于 ucTop 也是一样。它是只有在我看到您粘贴的代码可以正确编译的情况下。)

您可能需要类似的东西:

public partial class _Default : Page
{
protected void Page_Load(sender obj, EventArgs e)
{
ucBottom.varBottomID = ucTop.varBottomID; // fix the first issue
}
}

public partial class ucTop : UserControl
{
public int varBottomID { get; set; } // fix the second issue
protected void Page_Load(object src, EventArgs e)
{
varBottomID = 100;
}
}

如果你走这条路,你还需要选择不同的事件来触发。如果一切都在 Load 上触发,那么您就有问题了 -- Load 首先在页面上触发,然后在子控件上触发。因此该属性将无法正确设置。 (设置分为 3 个步骤:ucTop 决定要设置的正确值,_Default 从上到下设置它,然后 ucBottom 使用它。您需要该序列进行决定设置使用,以便它正常工作,但如果一切都在 Load 上触发,您将结束设置决定使用设置使用决定。)您可能会考虑让 _Default 在 LoadComplete 上执行它的操作,并让 ucBottom 在 PreRender 上执行它的操作。

关于c# - 使用 C# 将单个 Int 从一个用户控件传递到另一个用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7394865/

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