Получить значения из элемента в пользовательском веб-элементе управления с родительской страницы - PullRequest
0 голосов
/ 29 марта 2012

У меня есть пользовательский веб-элемент управления, содержащий CheckBoxList.

MyListControl:

<asp:checkboxlist id="chkList" runat="server">
     <asp:listitem id="option1" runat="server" value="Madrid" />
     <asp:listitem id="option2" runat="server" value="Oslo" />
     <asp:listitem id="option3" runat="server" value="Lisbon" />
</asp:checkboxlist>

Я хочу проверить, какие элементы проверяются перед отправкой формы на родительскую страницу.Я надеялся, что это будет работать так:

myParentPage:

MyUserControlInstance.chkList.Items.Count

Как можно ссылаться на элемент управления в пользовательском элементе управления с родительской страницы?

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Инкапсулируйте свойство в своем коде позади элемента управления.

public int GetLength
{
    get
    {
        return CheckListBox.Items.Cast<ListItem>().Where(
                                     i => i.Selected).ToList().Count;
    }
}

Теперь замените строку

MyUserControlInstance.chkList.Items.Count

на MyUserControlInstance.GetLength


Примечание - Пожалуйста, добавьте необходимые пространства имен, такие как System.Collections.Generic и System.Linq

2 голосов
/ 29 марта 2012

Я бы выставил эту информацию как общедоступное свойство в пользовательском контроле, возвращая только необходимую информацию, такую ​​как:

using System.Collections.Generic;
using System.Linq;

// ...

public IList<string> CheckedValues
{
    get { return chkList.Items.Cast<ListItem>().Where(i => i.Selected).Select(i => i.Value).ToList(); }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...