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
     }

    }


  • 相关阅读:
    DHTML【11】--DOM
    sql 查询强制使用HASH连接性能测试比较
    Winform开发框架之读卡器和条码扫描枪的数据接收处理
    DevExpress的XtraReport和微软RDLC报表的使用和对比
    sql server日期时间转字符串
    C#在线更新程序[下载程序、解压缩程序、控制台程序]
    C# 定时器事件(设置时间间隔,间歇性执行某一函数,控制台程序)
    用C#用C#实现窗体在规定时间弹出,例如:10:00.弹出后关闭。并在5分钟后再次弹出。5次后停止。最好有具体代码实现窗体在规定时间弹出,例如:10:00.弹出后关闭。并在5分钟后再次弹出。5次后停止。最好有具体代码
    C#多线程学习之(五)使用定时器进行多线程的自动管理
    C# 文件与目录的基本操作(System.IO)
  • 原文地址:https://www.cnblogs.com/aipeli/p/264708.html
Copyright © 2011-2022 走看看