2013-12-20 27 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"})