Свяжите с данными Список ASP.NET ListItem к проблеме DropDownList

Обеспечение абсолютно неограниченной длины пароля имеет один главный недостаток при принятии пароля из недоверяемых источников.

отправитель мог попытаться дать Вам такой длинный пароль, что это приводит к отказу в обслуживании для других людей. Например, если пароль составляет 1 ГБ данных, и Вы проводите все свое время, принимают его, пока у Вас не заканчивается память. Теперь предположите, что этот человек отправляет Вам этот пароль так же много раз, как Вы готовы принять. Если Вы не осторожны относительно других параметров, включенных, это могло бы привести к DoS-атаке.

Установка верхней границы к чему-то как 256 символов кажется чрезмерно щедрой по сегодняшним стандартам.

30
задан Farinha 12 August 2009 в 11:28
поделиться

4 ответа

Привет, когда привязка данных (к чему-либо) вам нужно установить DataTextField и DataValueField вашего DropDownList. В вашем случае вам следует использовать следующий код

List<ListItem> users = new List<ListItem>();
foreach (SubscriptionUser su in subscriptionDetails.UserList)
{
    users.Add(new ListItem(su.FirstName + " " + su.LastName, su.EmailAddress));
}
ddlPrimaryContact.DataTextField = "Text";
ddlPrimaryContact.DataValueField = "Value";
ddlPrimaryContact.DataSource = users;
ddlPrimaryContact.DataBind();
59
ответ дан 27 November 2019 в 23:14
поделиться

Вы должны связать свой раскрывающийся список как:

ddlPrimaryContact.DataSource = users;
ddlPrimaryContact.DataTextField = "Value";
ddlPrimaryContact.DataValueField = "Text";
ddlPrimaryContact.DataBind();

Если вы спросите, почему, насколько мне известно, элементы управления привязкой данных принимают тексты и значения (если они не предоставляются, как указано выше), вызывая ToString для каждого элемента в коллекции источника данных. Таким образом, каждый ListItem в вашей коллекции возвращает свойство Text методом ToString.

10
ответ дан 27 November 2019 в 23:14
поделиться

Или, альтернативно, вы можете привязать его таким образом. (Предполагая, что вы можете добавить свойство readOnly в SubscriptionUser под названием FullName (которое возвращает su.FirstName + "" + su.LastName)

ddlPrimaryContact.DataSource = subscriptionDetails.UserList;
ddlPrimaryContact.DataBind();

, тогда на странице ASPX введите:

<asp:DropDownList id="ddlPrimaryContact" runat="server" DataTextField="FullName" DataValueField="EmailAddress" />
7
ответ дан 27 November 2019 в 23:14
поделиться

вы также можете напрямую добавить элемент списка в раскрывающийся список ..

List<ListItem> users = new List<ListItem>();
        for (int count = 0; count < 10; count++)
        {
            ListItem li = new ListItem("List " + count.ToString(), count.ToString());
            ddl.Items.Add(li);
        }
5
ответ дан 27 November 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: