2013-04-14 3 views
0

Я пытаюсь получить DropDownList для AutoPostBack, когда выбранный элемент изменен. Я немного смущаюсь, почему это не работает.DropDownList не откладывает на SelectedIndexChanged

Кто-нибудь есть какие-либо быстрые идеи Пожалуйста помогите

Вот код: -

<asp:DropDownList ID="ddl_username" runat="server" 
    AutoPostBack="True" 
    onselectedindexchanged="ddl_username_SelectedIndexChanged" 
    DataTextField="Shortname" DataValueField="ID"> 
    </asp:DropDownList>` 



    protected void Page_Load(object sender, EventArgs e) 
    { 
    if (!IsPostBack) 
    { 
     Bind_Users(); 
    } 
    } 

private DataSet Bind_Users() 
{ 
    DataSet ds; 
    ds = cs.BindUsers(); 
    if (ds.Tables[0] != null) 
    { 
     if (ds.Tables[0].Rows.Count > 0) 
     { 
      ddl_username.DataSource = ds.Tables[0]; 
      ddl_username.DataTextField = "Shortname"; 
      ddl_username.DataValueField = "ID"; 
      ddl_username.DataBind(); 
      ListItem li = new ListItem(); 
      li.Text = "Select"; 
      li.Value = "-1"; 
      ddl_username.Items.Insert(0, li); 
      ddl_username.SelectedIndex = 0; 
     } 
     //ddl_username.SelectedIndex = 0; 
     //ddl_username.Text = "-----Select-----"; 
    } 
    return ds; 
} 
+0

, пожалуйста, добавьте более подробную информацию, что находится в вашей 'Page_load'? –

+0

Что такое 'cs' и в чем разница между' Bind_Users' и 'BindUsers' –

+0

Где находится метод' ddl_username_SelectedIndexChanged'? – nmat

ответ

1

Вы проверили, если начальная загрузка DDL происходит снова после перепечатывать? Просто поставьте точку отладки в выбранном вами методе с измененным индексом и один в методе oninit/page-load - если вы загружаете данные в ddl. если он загружает еще раз перед обжигом ваше мероприятие - нужно положить

if(!IsPostBack) 

перед методом нагрузки - как:

if(!IsPostBack) 
    this.MyDDL.DataSource = GetDatasourceForMyDDL(); 
+0

попробуйте, но не сработает – Bhavnish

0

Page_Load вызывается каждый раз, страница постбэк, так что вы должны поставить Bind_Users() внутри блока

if(!IsPostBack), потому что Page_Load вызывается до ddl_username_SelectedIndexChanged

+0

попробуйте, но не работает – Bhavnish

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