我希望我的用户控件具有使用n个不同参数的功能。 n无意修复。
例如,有一次我会将3个字符串传递给它,然后下一次12:
<mycompany:MyUC runat="server" ID="mctID" Para1="test1" Para2="test3" Para3="test4" Para4="test8" />
<mycompany:MyUC runat="server" ID="mctID" Para1="test1" Para2="test3" Para3="test4" Para4="test8" Para5="test1" Para6="test3" Para7="test4" Para8="test8" />
如果没有事先定义属性,这可能吗?
答案 0 :(得分:0)
除非你用某种分隔符传递它,否则我认为这是不可能的:
MyProperty="Value1, Value2, Value3"
然后在代码端用“,”拆分它。
但我认为最好只在控件中使用一个函数并传递值,例如作为字符串数组(VB.Net语法):
在控制中:
Public Sub SetMyValues(values As String())
' Store in viewstate or do what you need
End Sub
初始化控件时,可以从页面或任何需要的地方打电话:
MyControl1.SetMyValues({"Value1", "Value2", "Value3"})
答案 1 :(得分:0)
我用另一种方法来实现我的目标。解决方案是在我的属性中使用PersistenceMode属性以及我自己的类&#34; SelectControl&#34;:
<PersistenceMode(PersistenceMode.InnerProperty)> _
Public Property SelectControls() As List(Of SelectControl)
Get
....
End Get
Set(ByVal value As List(Of SelectControl))
...
End Set
End Property
<myCompany:QDirectEditAdapter runat="server" ID="deaContactsSupplier" EditControlID="grdContactsSupplier" EditControlKeyField="SSC_USR_ID_FK">
<SelectControls>
<myCompany:SelectControl ControlID="cboUserSelection" ContainerID="pnlUserSelection" KeyField="USR_ID" ActivityColumns="USR_USERNAME, USR_NAME" />
<myCompany:SelectControl ControlID="qacProductSelection" ContainerID="pnlProductSelection" KeyField="NR" ActivityColumns="SSC_APPLICATION" />
</SelectControls>
</myCompany:QDirectEditAdapter>