我在MasterPage上有两个UserControl。 DataEntryUC包含几个TextBoxes和DropDownList。 NavSaveUC包含导航按钮。当用户点击导航按钮时,我将保存从NavSaveUC UserControl输入到DataEntryUC的数据。
我的数据库中有几个表包含与DataEntryUC相关的存储过程名称,控件名称,控件类型,SqlDbTypes等。
如何从NavSaveUC引用DataEntryUC上的文本框?
我一直在使用NavSaveUC的以下代码而没有运气。
Dim MyControlName = "txtFirstName"
Dim MyControlType = "TextBox"
Dim MyStringValue as String
Dim tmpTxtControl as TextBox
Dim tmpDdlControl as DropDownList
Select Case MyControlType
Case "TextBox"
tmpTxtControl = CType(Page.FindControl(MyControlName, TextBox)
MyStringValue = tmpTxtControl.Text
Case "DropDownList"
tmpDdlControl = CType(Page.FindControl(MyControlName, DropDownList)
MyStringValue = tmpDdlControl.SelectedValue
End Select
谢谢!
答案 0 :(得分:1)
将文本框公开为用户控件的属性并以此方式访问它。但是,这种类型的依赖不是最好的做法。
答案 1 :(得分:1)
如果一个用户控件嵌入在另一个用户控件中,则只需将其作为控件的属性公开。但是,如果两个用户控件分别存在于同一页面上,则控件不应直接相互交互以避免控件之间的依赖关系。
相反,您应该将该页面用作两个控件之间的中介。例如,当执行操作时,NavSaveUC可以使用其事件参数中的数据引发事件。该页面可以处理来自NavSaveUC的事件。如果DataEntryUC将文本框或文本框的文本属性公开为公共属性,则页面的事件处理程序可以从NavSaveUC的事件参数中获取数据并将其放在DataEntryUC的文本框中。