2013-12-20 25 views
0

我希望我的用户控件具有取n个不同参数的功能。 n并不意味着要修复。
例如一个时间我将通过3个字符串它和下一个时间12:具有“n”多个属性的ASP.Net用户控件

<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

鉴于MyUC最终是一类,你会如何写一个类,有属性未定义多少?您需要一个方法或属性来取代IEnumerable的值。 –

回答

0

我用另一种方法来实现我的目标。解决的办法是在我的财产与我自己的类“SelectControl”一起使用PersistenceMode属性:

<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> 
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"})