2015-10-27 2 views
0

Вот моя проблема, у меня есть dropdownlist в моем asp.net и gridview. Основываясь на выбранном значении DropDownList, я хотел бы изменить данные контента/привязки в GridView. Но этого не происходит, OnSelectedIndexChanged Событие не стреляет в изменение.DropDownList OnSelectedIndexChanged не активирован

код Aspx:

<asp:DropDownList ID="drpRegion" runat="server" CssClass="ddlfield" AutoPostBack="true" 
       OnSelectedIndexChanged="drpRegion_SelectedIndexChanged" /> 

Aspx.cs код:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     BindDropDown(); //data binding for dropdownlist 
     BindRegionWiseTally(); //data binding for gridview 
    } 
} 

protected void drpRegion_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    BindRegionWiseTally(); //data binding for gridview 
} 

Я поставил страницу Профиль EnableViewState="false" на основе предложений.

+1

Вы поставили точку останова в коде события, чтобы узнать, стреляет ли она или вы используете это на вид сетки, не обновляясь? – DavidG

+1

Вы хотите удалить 'EnableViewState =" false "'. – Win

+0

Работает ли он с включенным ViewState? Использовали ли вы отладчик, чтобы подтвердить, что событие не запускается? Отправляется ли страница вообще (проверьте, установив точку останова в 'Page_Load')? –

ответ

1

Как я не нашел каких-либо изменений в коде, когда я попробовал это событие Dropdownchange стреляет, пожалуйста, держать точку останова и проверить его,

ASPX Код:

<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True"> 
    <asp:ListItem Value="1">Tracking Reader</asp:ListItem> 
    <asp:ListItem Value="2" Selected ="True" >Dropbox Reader</asp:ListItem> 
</asp:DropDownList> 

Aspx.cs Код

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      BindDropDown();//data binding for dropdownlist 
      //BindRegionWiseTally();//data binding for gridview 
     } 
    } 

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     Response.Write("Invoked sucessfully."); 
    } 
    protected void BindDropDown() 
    { 
     DropDownList1.Items.Add("All"); 
     DropDownList1.Items.Add("New"); 
     DropDownList1.Items.Add("Update"); 
     DropDownList1.Items.Add("Delete"); 
    } 
+0

Я попытался поставить точку останова, но он не срабатывает, как ожидалось! –

+0

Что вы имеете в виду, не уволен, как ожидалось .. ?? как вы хотите его уволить .. ?? –

+0

Я имею в виду, даже если точка перерыва внутри события изменения, управление не передано! –

3

Попробуйте переместить метод BindDropDown() ранее на жизненном цикле страницы и сделать это безоговорочно.

protected override void OnInit(EventArgs e) 
{ 
    BindDropDown();//data binding for dropdownlist 
} 

Чтобы уточнить - да, это связано с тем, что для параметра EnableViewState страницы установлено значение false.

Фактически это не только выбранное значение. Весь список выпадающих элементов (которые сохраняются в ViewState), вероятно, исчезнет для вас.

Свойство SelectedValue устанавливается после того, как у нас есть список элементов, это зависит от него.

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

+0

попробовал это, независимо от того, что я выбираю в раскрывающемся списке, он изменился на Index-0 (я имею в виду drpRegion.SelectedValue становится 0) ..! –

+0

Должен ли я полагать, что EnableViewState изменен на "true"? –

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