2014-09-22 64 views
0

我用C#創建了一個Web窗體用戶控件。 我已更改用戶控件的.cs文件(代碼和設計器)以允許任何類型。如何在ASP.NET中創建和使用通用Web窗體用戶控件?

public partial class MyGenericControl<T> : System.Web.UI.UserControl 
{ 
} 

現在,我嘗試使用它在ASP.NET表單一樣THI

<uc1:MyGenericControl runat="server" id="MyGenericControl1" /> 

但我不知道如何發送我需要控件的類型。

感謝您對此問題的任何建議或幫助。

+0

[Syntax for generic(ie )web user control](http://stackoverflow.com/questions/16316469/syntax-for-generic-iet-web-user-control) – MethodMan 2014-09-22 15:43:28

+1

因爲我沒有認爲這是可能的,也許你可以描述你的用例,所以我們可以建議最好的解決方法。 – Stilgar 2014-09-22 15:44:44

回答

0

我會把我的迴應置於評論中,因爲我還沒有答案,但我沒有50個代表,所以我不能評論。

這是處理用戶控件的一種非常有趣的方式。 我對你的問題是,你想用這個完成什麼?我們需要知道,因爲您的解決方案可能不涉及具有接受任何類型的用戶控件 - 就像Stilgar所說。

你也許可以用一個枚舉/屬性組合來完成這個..這是我想出來的:

<uc1:MyGenericControl runat="server" id="MyGenericControl1" myControlType="DropDownList" /> 

public partial class MyGenericControl<T> : System.Web.UI.UserControl 
{ 
    public enum ucType : ushort 
    { 
     DropDownList = 1, 
     TextBox, 
     Button, 
     Etc 
    } 

    private ucType _controlType; 

    public ucType myControlType 
    { 
     get{return _controlType;} 
     set{ T = value; } /* Somehow set T to the value set in ASP. 
    In this example, value would be "1" so it would throw an error, but you get the idea. */ 
    } 
} 

這更提示和發人深省的不是一個完整的答案,因爲我不不知道是否可以動態設置類的類型(尤其是當前正在使用的類類型)。有一個Convert.ChangeType方法,但我不認爲這會在這裏工作。

相關問題