2015-02-17 4 views
0

У меня есть кнопка внутри списка и метка. Метка привязана к моей базе данных и отображает оценку. Если вы нажмете кнопку, я хочу, чтобы оценка была обновлена ​​на стороне клиента. Но поскольку я не могу получить доступ к элементам Listview из кода, я понятия не имею, как это сделать. А updatepanel не работает.Обновить значение в ListView

Мой ListView привязан к SqlDataSource:

<asp:ListView ID="ListViewSearch" runat="server" DataSourceID="SqlDataSourceWebsite" DataKeyNames="WebsiteID"> 

Мои кнопки и моя метка для рейтинга: функция

<asp:LinkButton ID="BtnUp" runat="server" CssClass="btn btn-default btn-xs" CommandArgument='<%# Eval("testId").ToString() %>' OnClick="up_click"></asp:LinkButton> 

<asp:LinkButton ID="BtnDown" runat="server" CssClass="btn btn-default btn-xs" CommandArgument='<%# Eval("testId").ToString() %>' OnCommand="down_click"></asp:LinkButton> 

<asp:Label ID="LabelRating" runat="server" Text=' <%# Eval("rating") %>'></asp:Label> 

upClick():

protected void up_click(object sender, EventArgs e) 
     { 
      LinkButton btn = (LinkButton)sender; 
      String webID = btn.CommandArgument.ToString(); 
      int ID = Convert.ToInt32(webID); 
      click(ID, 1); 
     } 

Нажмите функцию():

public void click(int webID, int vote) 
     { 
      using (SqlConnection con = new SqlConnection(strCon)) 
      { 
       using (SqlCommand cmd = con.CreateCommand()) 
       { 
        cmd.CommandText = "UPDATE [Test] SET [rating][email protected] WHERE [testId][email protected]"; 
        cmd.Parameters.AddWithValue("@webID", webID); 
        cmd.Parameters.AddWithValue("@vote", vote); 

        con.Open(); 

        cmd.ExecuteNonQuery(); 

       } 
       con.Close(); 
      } 
     } 

Код обновляет рейтинг, как и предполагалось, но чтобы увидеть изменение, я должен обновить страницу. Итак, вопросы: Как обновить значение внутри списка, нажав кнопку внутри того же lisview?

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

ответ

0

Я больше в ASP MVC, однако, может быть, моя подсказка помочь тебе. То, как я делал это поведение, было связать функцию javascript с кнопкой и с помощью jQuery я отправил запрос GET на конкретное действие (метод) на сервере, например: www.myexample.com/getData?tableid=24 который отвечает json, содержащим необходимые данные. Надеюсь, что это направит вас к правильному решению.

Приветствия, Marek

+0

Спасибо за ваш ответ, я мог бы быть в состоянии сделать это. Что представляет табличка? И этот метод не обновляет всю страницу? –

+0

Внутри вашего списка есть идентификатор данных, привязанных к данной ячейке, которую вы хотите обновить. Поэтому в вашем запросе вы должны передать этот идентификатор, чтобы найти свою базу данных для получения необходимых данных. Когда ваш запрос jQuery завершен, вам просто нужно заменить содержимое элемента управления новыми данными. Это не приведет к обновлению всей страницы. Вот еще одна тема, которая охватывает образцы запросов async для jQuery: http://stackoverflow.com/questions/3767653/how-can-i-do-a-simple-asynchronous-query-implementation-in-jquery – MarekB

+0

А как же Я знаю, с какого имени это происходит, когда я заполняю его из базы данных? У вас нет образца кода? Я довольно плохо разбираюсь в jQuery –