ASP.NET простой пользовательский элемент управления с двухсторонним связыванием - PullRequest
2 голосов
/ 25 августа 2011

У меня есть пользовательский элемент управления с двумя текстовыми полями и одним выпадающим списком. Я хочу сделать это двунаправленной привязкой данных, поэтому, когда я помещаю это в ie. Подробности Просмотр управления, как это:

    <asp:MyCustomControl ID="MyId" runat="server" Value1='<%# Bind("val1") %>'>
    </asp:MyCustomControl>

тогда он должен работать как обычный TextBox ..

В моем контроле я определил Value1:

    [
    Bindable(true, BindingDirection.TwoWay),
    Browsable(true),
    DefaultValue(0),
    PersistenceMode(PersistenceMode.Attribute)
    ]
    public  double Value1
    {
        get
        {
            if(ViewState["Value1"]==null)
                return 0;
            return (double)ViewState["Value1"];                
        }
        set
        {
            ViewState["Value1"] = value;
        }
    } 

Я хочу, чтобы этот элемент управления был простым.

Что мне не хватает?

1 Ответ

0 голосов
/ 26 августа 2011

Я нашел какой-то обходной путь.Свойство в элементе управления (ascx.cs) теперь выглядит так:

    private double _value = 0;
    [
    Bindable(true, BindingDirection.TwoWay),
    Browsable(true),
    DefaultValue(0),
    PersistenceMode(PersistenceMode.Attribute)
    ]
    public double Value
    {
        get
        {
            double d = 0;
            Double.TryParse(ValueControlTextBox.Text,out d);
            return d;
        }
        set
        {   
            ValueControlTextBox.Text = String.Format("{0:0.00}", value);
            _value = value;
        }
    }

И это работает так, как мне нужно.

...