首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
wangchinaking (57)
yjz0065 (113)
coofucoo (105)
Drate (69)
lphpc (30)
smallnest (61)
iiprogram (64)
downmoon (32)
danny_xcz (49)
btbtd (81)
CSDN - 文档中心 - .NET 阅读:8409   评论: 2    参与评论
标题   datagrid技巧之一:代码控制选中行的颜色     选择自 qieyj 的 Blog
关键字   datagrid
出处  

大家都知道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
 }

}


相关文章
对该文的评论
CSDN 网友 ( 2005-12-05)
没有什么反应
superboy105 ( 2005-05-19)
不行