2015-04-12 5 views
0

Я застрял в этой проблеме часами, и я буквально пробовал все, но ничего не работает!DataList не обновляется

Так что у меня этот кусок кода в моем случае нажатия кнопки:

protected void btn_search_Click(object sender, EventArgs e) 
{ 
     string query; 
     int make = System.Convert.ToInt32(make_list.SelectedValue); 
     int model = System.Convert.ToInt32(model_list.SelectedValue); 

     query = "SELECT c.owner_id, u.first_name, u.last_name, City.city, Makes.make, Models.model, Type.type, Colours.colour, [Year].[year], c.price, c.photo1, c.photo2, c.photo3, c.ID AS carID FROM (((((((Cars c INNER JOIN Users u ON c.owner_id = u.ID) INNER JOIN City ON u.city_id = City.ID) INNER JOIN Models ON c.model_id = Models.ID) INNER JOIN Makes ON Models.make_id = Makes.ID) INNER JOIN Type ON Models.type_id = Type.ID) INNER JOIN Colours ON c.colour_id = Colours.ID) INNER JOIN [Year] ON c.year_id = [Year].ID) WHERE "; 

     if (make != 1) 
     { 
      query = query + "Models.make_id = @make"; 
      SearchDataSource.SelectParameters.Add("make", make.ToString()); 
     } 
     else 
     { 
      query = query + "Models.make_id > 0"; 
     } 

     if (model != 1) 
     { 
      query = query + " AND c.model_id = @model"; 
      SearchDataSource.SelectParameters.Add("model", model.ToString()); 
     } 
     else 
     { 
      query = query + " AND c.model_id > 0"; 
     } 


    SearchDataSource.SelectCommand = query; 
    DataList1.DataBind(); 

} 

So проверка запрос из таблицы Автомобилей, существует ли определенный автомобиль в зависимости от входа пользователей в выпадающих списках во время присоединения соответствующего таблицы, чтобы получить результат, который я хочу. На моем автомобильном столе существует только 1 автомобиль с маркой «Alfa Romeo» и моделью «4C».

В моем XAML у меня есть:

<asp:SqlDataSource ID="SearchDataSource" runat="server" ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\4WheelsDB.mdb;Persist Security Info=True" ProviderName="System.Data.OleDb"> 
    </asp:SqlDataSource> 
    <asp:DataList ID="DataList1" runat="server" DataSourceID="SearchDataSource"> 
     <ItemTemplate> 
     <asp:Label ID="lblmake_id" runat="server" Text='<%# Eval("make") %>' /> 
     </ItemTemplate> 
    </asp:DataList> 

Так что, когда я проверить этот запрос в Access со значением макияжа 2, который является Alfa Romeo и значение Модели 2, которая 4C возвращает 1 строку, которая идеально. И когда я тестирую Alfa Romeo с величиной модели 3, которая является Giuletta, она не возвращает никаких строк, которые также идеальны.

Так как их нет ничего плохого в запросе, его время проверить, как это делается на веб-сайте, при тестировании на веб-сайте я выбираю Alfa Romeo 4C, и он показывает марку в списке товаров, однако, когда я выберите Alfa Romeo Giuletta, он все еще показывает марку в списке элементов, но когда я перезагружаю всю страницу и выбираю Alfa Romeo Giuletta, она ничего не показывает, и когда я выбираю Alfa Romeo 4C, он больше ничего не показывает!

Поэтому мне кажется, что мне нужно обновить страницу, чтобы показать результат, который ожидается, я честно не знаю, почему он это делает, но я попробовал Disposing, а затем DataBinding DataList, прежде чем что-либо еще в Click, даже если ничего не работает !

Кто-нибудь знает, в чем проблема? Если вам нужно, чтобы я объяснил еще больше, пожалуйста, спросите, спасибо!

+0

Комментарии не для широкого обсуждения; этот разговор был [перемещен в чат] (http://chat.stackoverflow.com/rooms/75123/discussion-on-question-by-c0mrade-datalist-not-updating). – Taryn

ответ

0

Попробуйте это ...

ПОСЛЕ: SearchDataSource.SelectCommand = запрос;

ADD: DataList1.Databind()

+0

Я пробовал это раньше, жаль, что не сказал .. но да, это не работает: / – c0mrade

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