SelectedIndex не меняет SharePoint asp DropDownList - PullRequest
0 голосов
/ 23 мая 2019

Я пишу приложение SharePoint, и у меня возникла проблема с раскрывающимся списком.Его SelectedIndex не меняется.Я прочитал много вопросов и ответов, и они предлагают использовать от IsPostBack или EnableViewState до true.Я сделал оба безуспешно.

Код ASP:

<div class="value">
    <asp:DropDownList ID="groupingDropDownList" runat="server" EnableViewState="True" OnSelectedIndexChanged="groupingDropDownList_SelectedIndexChanged" AutoPostBack="true" />
</div>

Код C #:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
            {                
                groupingDropDownList.DataSource = sourceList.Select(x => new { x.Name, Value = x });
                groupingDropDownList.DataTextField = "Name";
                groupingDropDownList.DataValueField = "Value";
                groupingDropDownList.DataBind();
            }
}

Событие SelectedIndexChanged не запускается, поскольку индекс не изменяется.Я устанавливаю точку останова в строке if (!Page.IsPostBack), и она всегда равна 0.

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Я знаю, в чем была моя ошибка, это была строка:

groupingDropDownList.DataSource = sourceList.Select(x => new { x.Name, Value = x });

Я всегда устанавливал значение равным имени класса, и так как значение не изменилось, элемент управления не заметил изменения индекса.

0 голосов
/ 23 мая 2019

В блоке! Page.IsPostBack вы впервые заполняете раскрывающийся список.Похоже, вы пытаетесь обнаружить изменение в раскрывающемся списке по мере его загрузки - что невозможно.

Итак, чтобы проверить это, вы должны выполнить проверку в обратной передаче страницы или в обработчике событий groupingDropDownList_SelectedIndexChanged..

if (!Page.IsPostBack)
{                
    groupingDropDownList.DataSource 
        = sourceList.Select(x => new { x.Name, Value = x });
    groupingDropDownList.DataTextField = "Name";
    groupingDropDownList.DataValueField = "Value";
    groupingDropDownList.DataBind();
}
// Actual postback
else
{
    var test = groupingDropDownList.SelectedValue;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...