Spring.NET DataBinding и UserControl
От: catlion  
Дата: 15.09.09 09:58
Оценка:
Господа, нужна ваша помощь. Пытаюсь сделать привязку к модели с помощью пользовательских UserControl. Проблема в том, что опубликованное свойство контрола не биндится к модели. Код таков:

UserControl:
using System;
public partial class SpnTest : Spring.Web.UI.UserControl
{
    private string testProperty;
    public string TestProperty
    {
        get { return testProperty; }
        set { testProperty = (string)value; }
    }

    protected override void InitializeModel()
    {
        testProperty = "";
    }

    protected override void LoadModel(object savedModel)
    {
        testProperty = (string)savedModel;
    }

    protected override object SaveModel()
    {
        return testProperty;
    }

    protected override void InitializeDataBindings()
    {
        BindingManager.AddBinding("TextBox1.Text", "TestProperty").SetErrorMessage("TestProperty Binding error", "errProv.errors");
    }

    protected void Page_Load(object sender, EventArgs e)
    {
    }
}


Page:
using System;
public partial class SpnTest : Spring.Web.UI.Page
{
    public class Test
    {
        public string Property1 { get; set; }
        public string Property2 { get; set; }
    }

    private Test testObj;
    public Test TestObj
    {
        get { return testObj; }
        set { testObj = (Test)value; }
    }

    protected override void InitializeModel()
    {
        testObj = new Test();
        testObj.Property1 = testObj.Property2 = "";
    }

    protected override void LoadModel(object savedModel)
    {
        testObj = (Test)savedModel;
    }

    protected override object SaveModel()
    {
        return testObj;
    }

    protected override void InitializeDataBindings()
    {
        BindingManager.AddBinding("TextBox1.Text", "TestObj.Property1").SetErrorMessage("Property1 Binding error", "errProv.errors");
        BindingManager.AddBinding("SpnTestControl1.TestProperty", "TestObj.Property2").SetErrorMessage("Property2 Binding error", "errProv.errors");
    }

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        txtDebug.Text = string.Format("Property1 = {0}\nProperty2 = {1}", TestObj.Property1, TestObj.Property2);
    }

}


Если кто-то хочет поиграться, можно скачать код с файлами разметки http://catlionv.narod.ru/SpnTest.zip
spring.net databinding usercontrol
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.