zoukankan      html  css  js  c++  java
  • 代码控制选中行的颜色

     

    大家都知道datagrid是一个使用频率很高的控件,在编写ASP.NET代码的时候,我们总希望能让用户选中指定的行以后,让那一行用不同的颜色显示,虽然datagrid样式也有这个功能,但是我们如何编写代码实现呢?

    在本例子中,我们首先动态产生1000行,然后当用户选中datagrid中的某一行的时候,那一行就会变为蓝色。代码如下:

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

    namespace WebApplication_rd
    {
     /// <summary>
     /// Demostrates how to have a datagrid server control be bookmarked
     /// </summary>
     public class datagrid : System.Web.UI.Page
     {

      protected System.Web.UI.WebControls.DataGrid DGProducts;
      int bookmarkIndex = 0; // The index of the row that should be scrolled to
      int itemCount = 0; // Counter for the amount of items on the page
      bool bookMark = true; // Controls whether or not the page is bookmarked
     
      #region DGProducts EventHandlers

      private void DGProducts_ItemDataBound(object source, DataGridItemEventArgs e) {
      
       if (bookMark) {
       
        LiteralControl anchor = new LiteralControl();
        anchor.Text = "<a name=\"" + itemCount.ToString() + "\">";
        itemCount ++;
        e.Item.Cells[0].Controls.Add(anchor);
        
       }
       
      }

      private void DGProducts_ItemCommand(object source, DataGridCommandEventArgs e) {
       
       if (e.CommandName == "Select") {
      
        e.Item.BackColor = Color.Blue;

        if (bookMark) {
         bookmarkIndex = e.Item.ItemIndex;
         this.InsertScriptBlock();
        }   
       }
      
      }

      
      #endregion

      #region EventHandlers
      private void Page_Load(object sender, System.EventArgs e)
      {

       this.Bind();

      }

      #endregion

      #region User Defined

      private void InsertScriptBlock() {
      
       System.Text.StringBuilder jScript = new System.Text.StringBuilder();
       jScript.Append("<script language=\"JavaScript\">");
       jScript.Append("location.href=\"#");
       jScript.Append(this.bookmarkIndex.ToString());
       jScript.Append("\";");
       jScript.Append("</script>");

       this.RegisterClientScriptBlock("Bookmark", jScript.ToString());
     
      }

      
      private void Bind()
      {
      
       DGProducts.DataSource = this.CreateDataSource(1000);
       DGProducts.DataBind();  
      
      }


      private DataTable CreateDataSource(int count) {
      
       DataTable table = new DataTable();
       DataColumn column = null;
       DataRow row = null;

       // Create 5 columns
       for (int iCol = 0; iCol < 5; iCol++) {
        
        column = new DataColumn("Column: " + iCol.ToString(), typeof(string));
        table.Columns.Add(column);

       }

       //Create Rows based on count variable
       for (int iRows = 0; iRows < count; iRows ++) {
       
        row = table.NewRow();
           
        for (int iCol = 0; iCol < 5; iCol ++) {
         
         row[iCol] = "Value: " + iCol.ToString();
        
        
        }

        table.Rows.Add(row);
       
       }
       
       return table;
      
      }


      #endregion

      #region Web Form Designer generated code
      override protected void OnInit(EventArgs e)
      {
       InitializeComponent();
       base.OnInit(e);
      }
      
      private void InitializeComponent()
      {   
       this.DGProducts.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DGProducts_ItemCommand);
       this.DGProducts.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DGProducts_ItemDataBound);
       this.Load += new System.EventHandler(this.Page_Load);

      }
      #endregion
     }

    }


  • 相关阅读:
    MySQL 常用到的几个字符处理函数
    MySQL DATE_SUB查询工龄大于35的员工信息
    Mysql 没有nvl()函数,却有一个类似功能的函数ifnull();
    switch 循环中的case理解
    批处理系统和分时系统各具有什么特点?为什么分时系统的响应比较快?
    存储式计算机的主要特点是什么?
    代码实现导航栏分割线
    Keras函数式API介绍
    Keras通过子类(subclass)自定义神经网络模型
    R语言kohonen包主要函数介绍
  • 原文地址:https://www.cnblogs.com/aipeli/p/264708.html
Copyright © 2011-2022 走看看