Как получить визуализацию поверхности проектирования и выбор источника данных времени проектирования с пользовательским элементом управления asp.net - PullRequest
2 голосов
/ 03 февраля 2009

Если я создаю пользовательский элемент управления (РЕДАКТИРОВАТЬ: не веб-элемент управления / серверный элемент управления), довольно просто получить привязку к данным. Я просто добавляю свойство datasourceID.

В коде позади (vb)

Partial Public Class BandedControl
    Inherits UserControl

    Public Property DataSourceID() As String
        Get
            Return MyGridView.DataSourceID
        End Get
        Set(ByVal value As String)
            MyGridView.DataSourceID = value
        End Set
    End Property

End Class

В коде позади (c #)

public partial class BandedControl : UserControl
{

    public string DataSourceID {
        get { return MyGridView.DataSourceID; }
        set { MyGridView.DataSourceID = value; }
    }
}

Моя проблема в том, что это нарушает рендеринг времени разработки, а также у меня нет выпадающего списка для выбора источника данных. Как мне решить это. (Подсказка: я думаю, что мне нужен конвертер типов, но вся информация, которую я могу найти, касается серверных элементов управления, а не пользовательских элементов управления).

Ответы [ 3 ]

2 голосов
/ 10 февраля 2009

Вы можете попробовать добавить атрибут IDReferenceProperty к определению вашего свойства ...

public partial class BandedControl : UserControl
{
    [System.Web.UI.IDReferenceProperty(typeof(DataSourceControl))]
    public string DataSourceID
    {
        get
        {
           return MyGridView.DataSourceID;
        }
        set
        {
           MyGridView.DataSourceID = value; 
        }
    }
}

См. http://msdn.microsoft.com/en-us/library/system.web.ui.idreferencepropertyattribute.aspx для получения дополнительной информации о классе IDReferencePropertyAttribute.

Если это не сработает - я бы также попытался унаследовать от DataBoundControl вместо UserControl и посмотреть, приведет ли это вас куда-либо.

1 голос
/ 06 февраля 2009

Web UserControls динамически компилируются во время выполнения и поэтому не отображаются во время разработки. Вам нужно создать пользовательский веб-элемент управления. Ваша лучшая ставка здесь - расширить один из существующих Bindable Web Controls

http://msdn.microsoft.com/en-us/library/aa651710(VS.71).aspx

0 голосов
/ 11 февраля 2009

Не уверен, что это именно то, что вы хотите, но я помню, что они показывали нечто похожее на это в некоторых эпизодах dnr tv.

Я думаю, что это были эпизоды Мигеля Кастро 1 и 2, но это мог быть эпизод 31.

Архив всех видео здесь

...