在我的aspx页面上我有一个div
<div id="MatterRiskControl" runat="server" />
在aspx页面后面的代码中,我登录相关控件,如下所示
uc = CType(Page.LoadControl("MatterRisk_Probate.ascx"), UserControl)
MatterRiskControl.Controls.Add(uc)
这工作得很好,虽然我有一个文本框,我想设置的文本在后面的代码。在我的ascx页面中,文本框是这样设置的
<dx:ASPxTextBox ID="MyTextBox" runat="server" />
在ascx页面后面的页面加载代码中,我已经尝试过这个
MyTextBox.Text = "Some Text Here"
但它并没有设置它。
我不确定如何从后面的aspx代码引用TextBox?
感谢您的任何帮助!
1条答案
按热度按时间rdlzhqv91#
让我们假设一个UC有一大堆控件(文本框、复选框),所有有趣的东西。
简短版本:
创建UC的公共方法以更改所需的文本框。
造成这种情况的原因有很多,但主要原因是您希望设计支持控件的多个示例。
因此,公开公共方法。
说这个UC编辑酒店。
注意UC。
所以,我们有这个:
所以,在UC,我们这样做:
注意,在上面,我们可以使用相同的控件名称来表示后面的表单上的文本框,但是txtBox控件在呈现时将被UC更改。
所以,当前页面中的代码:
所以,请注意我们如何制作/使用/享受UC的公共方法,从而在当前页面上我们可以轻松抓取/获取/更改文本框控件。
如果你需要读取/使用文本框值,你可以很好地创建一个getter/setter。
所以,上面可能会变成这样:
同样,由于页面上可能存在2或5个控件副本,那么您在这里更改文本框的哪一个副本?
所以,我可以在页面上更新/更改2 UC的酒店名称,就像这样:
所以,现在代码更改酒店都将是这样的:
所以,如果你只需要获取值,那么在UC代码后面创建一个公共函数。
但是,如果你需要获取和设置该文本框,那么按照上面的方法公开一个公共属性,然后你就可以更改文本了。
更令人惊讶的是,这些值在标记中是有效的:
例如:
所以,就像一个Gridview与一个文本框一样?那么,当您有10行时,您处理的是文本框的哪个示例?
UC也是如此。如果页面上有5个文本框,您将获取、抓取并更改哪个文本框?
因此,将Text hotel框的多个示例分开的唯一真正方法是公开每个控件的getter和setter。
现在,你当然可以在客户端JavaScript中获得控件,并更改它,但目前,这篇文章有点长,上面的内容应该有助于一些我发现工作相当好的方法的好例子。