ASP.NET简单的自定义控件具有双向绑定功能

时间:2011-08-25 17:03:59

标签: c# asp.net custom-controls data-binding

我有两个文本框和一个下拉列表的自定义控件。我想让它成为双向数据绑定,所以当我把它放入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 :(得分:0)

我找到了某种解决方法。控件中的属性(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;
        }
    }

这就是我需要的。