2012-04-22 6 views

ответ

0

вы можете попробовать вызов яваскрипта FUNCT ион на событии onmouseover. This website имеет быстрый пример:

На стороне сервера:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     e.Row.Attributes["onmouseover"] = 
      "javascript:mouseovercolor(this);"; 
     e.Row.Attributes["onmouseout"] = 
      "javascript:mouseoutcolor(this);"; 
    } 
} 

На стороне клиента:

<script language=javascript type="text/javascript"> 
    function mouseovercolor(mytxt) { 
     mytxt.bgColor = 'Orange'; 
    } 
    function mouseoutcolor(mytxt) { 
     element.bgColor = 'White'; 
    } 
</script> 

Отредактировано:This site has a nice example о том, как заставить его работать с onClick события:

Сторона сервера:

protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e){ 
    if (e.Row.RowType == DataControlRowType.DataRow){ 
    // javascript function to call on row-click event 
    e.Row.Attributes.Add("onClick", "javascript:void SelectRow(this);"); 
    } 
} 

Клиент сторона:

<script type="text/javascript"> 
     // format current row 
     function SelectRow(row) { 
      var _selectColor = "#303030"; 
      var _normalColor = "#909090"; 
      var _selectFontSize = "3em"; 
      var _normalFontSize = "2em"; 
      // get all data rows - siblings to current 
      var _rows = row.parentNode.childNodes; 
      // deselect all data rows 
      try { 
       for (i = 0; i < _rows.length; i++) { 
        var _firstCell = _rows[i].getElementsByTagName("td")[0]; 
        _firstCell.style.color = _normalColor; 
        _firstCell.style.fontSize = _normalFontSize; 
        _firstCell.style.fontWeight = "normal"; 
       } 
      } 
      catch (e) { } 
      // select current row (formatting applied to first cell) 
      var _selectedRowFirstCell = row.getElementsByTagName("td")[0]; 
      _selectedRowFirstCell.style.color = _selectColor; 
      _selectedRowFirstCell.style.fontSize = _selectFontSize; 
      _selectedRowFirstCell.style.fontWeight = "bold"; 
     } 
</script> 
+0

спасибо, но у меня есть эта ошибка, когда я ее отлаживаю: Ошибка Только элементы управления содержимым разрешены непосредственно на странице контента, содержащей элементы управления содержимым. – Gandhi

+0

Вы используете мастер-страницы? если это так, просто для устранения неполадок, переместите блок javascript на главную страницу (главный тег) – Ulises

+0

благодарим вас за моего друга за вашу помощь, но когда я нажимаю другую ячейку в виде сетки, я хочу сбросить значение для предыдущей ячейки и применить новое значение для новой ячейки. – Gandhi

2

Вы можете сделать это в странице ASPX под GridView тегу:

<SelectedRowStyle BackColor="Orange" /> 

Но если вы хотите другой цвет при наведении мыши или курсора мыши попробуйте выполнить следующие действия в код под RowDataBound случае

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      e.Row.Attributes.Add("onmouseover", "this.style.cursor='hand';this.style.backgroundColor='orangered'"); 
      e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='white'"); 
     } 
    } 

Также проверьте эту ссылку, если вы хотите, чтобы выбрать строку, не нажимая на кнопки: ASP.NET: Selecting a Row in a GridView

+0

Спасибо Habib.OSU, я использовал этот код (GridView1_RowDataBound) Event, но я хочу, когда я нажимаю на элемент в GridView, он должен выделить и еще не выделить, пока я нажмите другой. – Gandhi

+0

@ Gandhi, посмотрите эту ссылку, http://msmvps.com/blogs/deborahk/archive/2010/01/25/asp-net-selecting-a-row-in-a-gridview.aspx У меня также есть обновление ответ со ссылкой – Habib

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