【问题标题】:ASP.NET simple custom control with two way binding具有两种方式绑定的 ASP.NET 简单自定义控件
【发布时间】:2011-08-25 17:03:58
【问题描述】:

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

我希望这个控件保持简单。

我错过了什么?

【问题讨论】:

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


【解决方案1】:

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

这可以满足我的需要。

【讨论】:

    猜你喜欢
    • 2013-09-23
    • 2018-06-21
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    相关资源
    最近更新 更多