2015-07-06 2 views
2

Я хотел бы сделать DropDownList внутри панели. Это мой код из файла codebehind. Но если я его выполнил, он всегда говорит: «В DropdownList не разрешено делать несколько выборов». Должен ли я что-то делать с автоповтором? Таким образом, ошибка возникает, когда я хочу выбрать что-то другое, чем «Все».Мой ASP.NET DropDownList не работает

DropDownList1.DataTextField = "Kanal"; 
DropDownList1.DataValueField = "Kanal"; 
DropDownList1.AppendDataBoundItems = true; 
ListItem limDefault = new ListItem(); 

limDefault.Selected = true; 
limDefault.Text = "All"; 
limDefault.Value = "-1"; 


      DropDownList1.Items.Add(limDefault); 

Тогда это мой код ASP.NET:

<asp:Panel ID="Panel1" runat="server"> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CR_SQL %>" SelectCommand="Select * from table" > 
    </asp:SqlDataSource> 
    <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" AutoPostBack="True"> 
    </asp:DropDownList> 
</asp:Panel> 
+0

Где код, вы обернуть его в '', если ... (IsPostBack!)? –

+0

@TimSchmelter Нет У меня есть код внутри метода Page_Load – aha364636

ответ

4

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

if(!IsPostBack) 
{ 
    ListItem limDefault = new ListItem(); 
    limDefault.Selected = true; 
    limDefault.Text = "All"; 
    limDefault.Value = "-1"; 
    DropDownList1.Items.Add(limDefault); 
} 
+0

@ Итак, если я устанавливаю AutoPostback в true, мне всегда нужен if (! IsPostBack)? – aha364636

+1

@ aha364636: да, но даже без 'AutoPostBack = true', так как другие элементы управления могут быть отправлены обратно. Если вы включили «ViewState», вся информация для привязки данных относится к 'if (! IsPostBack) {...}', поскольку вы не хотите/не должны ее выполнять несколько раз. Только если источник данных изменяется, например, если вы хотите показать другой порядок, отфильтруйте записи или используйте пейджинг, тогда вам нужно перезагрузить данные. –

Смежные вопросы