Как назначить источник данных списку флажков в ITemplate

#c# #asp.net #code-behind

#c# #asp.net #код, лежащий в основе

Вопрос:

Я пытаюсь назначить источник данных списку флажков внутри шаблона для моего элемента управления DetailsView.

 private class membershipChkLst : ITemplate
{
    private CheckBoxList chk_lst_Members;

    public membershipChkLst()
    {
        chk_lst_Members = new CheckBoxList();
    }

    public object AssignDataSource
    {
        get { return this.chk_lst_Members.DataSource; }

        set { this.chk_lst_Members.DataSource = value; }
    }

    public void InstantiateIn(Control container)
    {
        if (container != null)
        {
            container.Controls.Add(chk_lst_Members);
        }
    }
}
  

Правильный ли синтаксис, или я делаю это неправильно?

Комментарии:

1. Я бы не стал вызывать свойство AssignDataSource , поскольку это подразумевает скорее имя метода.

2. Почему бы вам не передать источник данных в качестве аргумента?

3. @R0MANARMY — Аааа… Я все еще работаю над своим подходом, поскольку это моя первая попытка. XD @V4Vendetta — Это было бы проще… Я слишком много думаю…

Ответ №1:

Что-то вроде этого

 public membershipChkLst(DataTable dt)
{
   chklst  = new CheckBoxList();
   chklst.ID = "chklstid";
   chklst.DataSource = dt;
   chklst.DataBind();
}
  

Передайте требуемый вами источник данных (я добавил DataTable просто для показа), и это помогло бы достичь того, чего вы хотите.

Комментарии:

1. Я понимаю… Это также сэкономило бы строку для использования DataBind после создания экземпляра шаблона…

2. Я еще не смог протестировать его. Я работаю над этим другим проектом, используя ASP.NET MVC 2. Извините, я обновлю вас, как только это сработает, и отмечу ваш пост как ответ. =)