【问题标题】:How to get the value of a control from the child into the properties of the parent in .NET?如何将控件的值从子级获取到.NET 中父级的属性中?
【发布时间】:2009-02-02 15:38:07
【问题描述】:

我有一个包含一些类似控件的表单,并且父级包含属性,但子级实际上具有 html 控件。如何使用父类中的“子”控件设置我的 getter/setter? (网络表单 - 仅供参考)

我通过搜索找到了以下内容,而我正在寻找的是相反的

Getting value of a property in Parent User control from a Child user control

编辑:

我应该早点尝试这个,但发现解释这种疯狂的情况很“有趣”。以下是 100% 有效的方法

Get
  Return DirectCast(Page.FindControl("lblCASE_NUMBER"), HtmlContainerControl).InnerHtml
End Get

【问题讨论】:

    标签: .net asp.net webforms


    【解决方案1】:

    如果我理解正确,您在另一个用户控件(父)中有一个用户控件(子),您需要从父级中访问子属性。

    如果这是正确的,您需要做的就是像在任何其他类中一样在子级中创建属性或方法。不仅仅是从父母那里使用它们。

    【讨论】:

    • 明白了,如果可能的话,我试图减少重复...是否可以从父级获取一些控件,而让子级渲染它的附加 html?
    • 当然 - 我正在做一些 ajax 来获取从服务器端生成的 html。我得到的所有表单都具有相同的 4 个 html 控件,因此为了保持一切干燥,我在父级中实现了视图界面的子集。然后父母为每个孩子做所有的“工作”,因为它是相同的编码 w/..
    • 自定义演示者中定义的“getbyid”和“update”方法的例外。但是当父母接受任何符合合同的演示者(父演示者的接口)时,它可以在父母中进行调用(再次 - 孩子中的零代码),但一个问题仍然存在......我不想要跨度>
    • 如果父级可以定义属性 1x,则将属性转储到每个表单中
    • 看来我只需要简单的 page.findcontrol ... 很抱歉让您参与其中,但我非常感谢您的帮助!
    【解决方案2】:

    跟进 cmets:

    好的,如果我理解正确,您希望在用户控件上拥有控件,但在父控件上拥有代码(因为您不想重复代码)。

    您有两种方法:

    1 - 将您的代码放在父级并在每个子级上创建属性,以便您可以访问控件的值。

    2 - 创建一个抽象类来放置您不想复制的代码并让您的所有孩子都继承它。您将需要在此类中创建公共对象作为“受保护的抽象 ObjectName”,并在您的孩子中将它们设置为“受保护的覆盖 ObjectName”。此选项将提供最少的代码编写,但它“迫使”您理解继承。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-30
      • 2020-03-19
      • 2020-06-20
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多