DataGrid 功能实现收集(一)

时间:2021-12-18 10:08:04
DataGrid相邻行有相同内容时对指定列合并 DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)/// <summary>
DataGrid 功能实现收集(一)
/// DataGrid相邻行有相同内容时对指定列合并
DataGrid 功能实现收集(一)
/// </summary>
DataGrid 功能实现收集(一)
/// <param name="spangrid">格式化的DataGrid的ID</param>
DataGrid 功能实现收集(一)
/// <param name="spancell">要合并的列</param>        
DataGrid 功能实现收集(一)
/// <param name="spanby">合并所依据数据的列</param>

DataGrid 功能实现收集(一)    public void FormatGrid(DataGrid spangrid,int spancell,int spanby)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)    
{
DataGrid 功能实现收集(一)      
if(spanby<0 || spanby>spangrid.Items.Count)
DataGrid 功能实现收集(一)          
return;
DataGrid 功能实现收集(一)          
int rowspan = 1;
DataGrid 功能实现收集(一)          
for(int i = 1;i<spangrid.Items.Count;i++)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)         
{
DataGrid 功能实现收集(一)        
if(spangrid.Items[i].Cells[spanby].Text == spangrid.Items[i-1].Cells[spanby].Text)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)            
{
DataGrid 功能实现收集(一)                
DataGrid 功能实现收集(一)               rowspan 
+=1;
DataGrid 功能实现收集(一)               spangrid.Items[i].Cells[spancell].Visible 
= false;
DataGrid 功能实现收集(一)               spangrid.Items[i
-rowspan+1].Cells[spancell].RowSpan = rowspan;
DataGrid 功能实现收集(一)            }

DataGrid 功能实现收集(一)        
else
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)        
{    
DataGrid 功能实现收集(一)           
string str = spangrid.Items[i].Cells[spanby].Text;
DataGrid 功能实现收集(一)           
string str1 = spangrid.Items[i-1].Cells[spanby].Text;
DataGrid 功能实现收集(一)           rowspan 
= 1;
DataGrid 功能实现收集(一)        }
    
DataGrid 功能实现收集(一)              }

DataGrid 功能实现收集(一)    }
 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)

datagrid加checkbox实现分页不丢失选择的记录 DataGrid 功能实现收集(一)namespace checkboc_page
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
/// <summary>
DataGrid 功能实现收集(一) 
/// WebForm1 的摘要说明。
DataGrid 功能实现收集(一) 
/// </summary>

DataGrid 功能实现收集(一) public class WebForm1 : System.Web.UI.Page
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
{
DataGrid 功能实现收集(一)  
protected System.Web.UI.WebControls.Button Button1;
DataGrid 功能实现收集(一)  
protected System.Web.UI.WebControls.DataGrid DataGrid1;
DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)  
private void Page_Load(object sender, System.EventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)   
if(!Page.IsPostBack)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    show();
DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)  
private void show()
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)   
string conn =  ConfigurationSettings.AppSettings.Get("Connstring");
DataGrid 功能实现收集(一)   DataSet ds 
= new DataSet();
DataGrid 功能实现收集(一)   
using(  SqlConnection con = new SqlConnection(conn))
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    con.Open();
DataGrid 功能实现收集(一)    SqlCommand comm 
= new SqlCommand();
DataGrid 功能实现收集(一)    SqlDataAdapter da 
=new SqlDataAdapter();
DataGrid 功能实现收集(一)     
DataGrid 功能实现收集(一)    da.SelectCommand 
= new SqlCommand();
DataGrid 功能实现收集(一)    da.SelectCommand.Connection 
= con;
DataGrid 功能实现收集(一)    da.SelectCommand.CommandText 
= "select * from Orders";
DataGrid 功能实现收集(一)    da.SelectCommand.CommandType 
= CommandType.Text;
DataGrid 功能实现收集(一)     
DataGrid 功能实现收集(一)    da.Fill(ds);
DataGrid 功能实现收集(一)            
DataGrid 功能实现收集(一)   
DataGrid 功能实现收集(一)     
DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)   
this.DataGrid1.DataSource = ds.Tables[0];
DataGrid 功能实现收集(一)   
DataGrid 功能实现收集(一)   
this.DataGrid1.DataBind();
DataGrid 功能实现收集(一)             
DataGrid 功能实现收集(一)   
if(Session["userlist"]!=null)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    Hashtable ht 
=(Hashtable) Session["userlist"];
DataGrid 功能实现收集(一)    
if(ht!=null)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)    
{
DataGrid 功能实现收集(一)     
for(int i = 0 ;i<DataGrid1.Items.Count ;i++)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)     
{
DataGrid 功能实现收集(一)      
if (ht.ContainsKey(DataGrid1.Items[i].Cells[0].Text.ToString().Trim()))
DataGrid 功能实现收集(一)       (DataGrid1.Items[i].Cells[
2].FindControl("CheckBox1"as CheckBox).Checked = true;
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)     }

DataGrid 功能实现收集(一)    }

DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)  
private void check()
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)   Hashtable ht 
= new Hashtable();
DataGrid 功能实现收集(一)   
if(Session["userlist"]!=null)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    ht 
=(Hashtable) Session["userlist"];
DataGrid 功能实现收集(一)    
if(ht!=null)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)    
{
DataGrid 功能实现收集(一)     
for(int i = 0 ;i<DataGrid1.Items.Count ;i++)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)     
{
DataGrid 功能实现收集(一)      
if ( (DataGrid1.Items[i].Cells[2].FindControl("CheckBox1"as CheckBox).Checked)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)      
{
DataGrid 功能实现收集(一)       
if (! ht.ContainsKey(DataGrid1.Items[i].Cells[0].Text.ToString().Trim()))
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)       
{
DataGrid 功能实现收集(一)        ht.Add(DataGrid1.Items[i].Cells[
0].Text.ToString().Trim(),DataGrid1.Items[i].Cells[1].Text.ToString().Trim());
DataGrid 功能实现收集(一)       }

DataGrid 功能实现收集(一)      }

DataGrid 功能实现收集(一)      
else
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)      
{
DataGrid 功能实现收集(一)       
if ( ht.ContainsKey(DataGrid1.Items[i].Cells[0].Text.ToString().Trim()))
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)       
{
DataGrid 功能实现收集(一)        ht.Remove(DataGrid1.Items[i].Cells[
0].Text.ToString().Trim());
DataGrid 功能实现收集(一)       }

DataGrid 功能实现收集(一)      }

DataGrid 功能实现收集(一)     }

DataGrid 功能实现收集(一)    }

DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)   
else
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    
for(int i = 0 ;i<DataGrid1.Items.Count ;i++)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)    
{
DataGrid 功能实现收集(一)     
if ( (DataGrid1.Items[i].Cells[2].FindControl("CheckBox1"as CheckBox).Checked)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)     
{
DataGrid 功能实现收集(一)      ht.Add(DataGrid1.Items[i].Cells[
0].Text.ToString().Trim(),DataGrid1.Items[i].Cells[1].Text.ToString().Trim());
DataGrid 功能实现收集(一)     }

DataGrid 功能实现收集(一)    }

DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)   Session[
"userlist"= ht;
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
Web 窗体设计器生成的代码
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)  
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)   check();
DataGrid 功能实现收集(一)   
DataGrid 功能实现收集(一)   DataGrid1.CurrentPageIndex 
= e.NewPageIndex;
DataGrid 功能实现收集(一)   show();
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)  
private void Button1_Click(object sender, System.EventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)    
DataGrid 功能实现收集(一)   
DataGrid 功能实现收集(一)             check();
DataGrid 功能实现收集(一)   Hashtable ht 
= (Hashtable)Session["userlist"];
DataGrid 功能实现收集(一)    
DataGrid 功能实现收集(一)    
foreach (DictionaryEntry objDE in ht)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)    
{
DataGrid 功能实现收集(一)     Response.Write(objDE.Value.ToString());
DataGrid 功能实现收集(一)      
DataGrid 功能实现收集(一)    }

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)    
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一) }

DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)

DataGrid中添加删除确认对话框 多种实现 DataGrid 功能实现收集(一)在DataGrid的使用中,经常需要为删除按纽添加确认对话框,根据我的学习经验,总结了三种方法,原理都是在客户端为删除按纽添加脚本代码来实现删除前弹出确认对话框。
DataGrid 功能实现收集(一)方法一:
DataGrid 功能实现收集(一)当为DataGrid控件添加删除按纽后,为DataGrid控件添加ItemDataBound事件处理程序,代码如下:
DataGrid 功能实现收集(一)
//添加删除确认对话框。
DataGrid 功能实现收集(一)
   switch(e.Item.ItemType)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    
case ListItemType.Item:
DataGrid 功能实现收集(一)    
case ListItemType.EditItem:
DataGrid 功能实现收集(一)    
case ListItemType.AlternatingItem:
DataGrid 功能实现收集(一)     ((LinkButton)e.Item.Cells[
4].Controls[0]).Attributes.Add("onclick","return confirm('你真的要删除第"+(e.Item.ItemIndex+1).ToString()+"行吗?');");
DataGrid 功能实现收集(一)     
break;
DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)其中,e.Item.Cells[
4]说明你添加的删除按纽在DataGrid控件中位于第五列,列号从0开始。
DataGrid 功能实现收集(一)方法二:使用模板列
DataGrid 功能实现收集(一)
1.为DataGrid添加一个模板列,名为“自定义删除”,在这个模板列中添加一个按纽,将按纽的CommandName属性设为UserDelete;
DataGrid 功能实现收集(一)
2.为DataGrid添加ItemCreated事件,添加客户端脚本程序,代码如下:
DataGrid 功能实现收集(一)
switch(e.Item.ItemType)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    
case ListItemType.Item:
DataGrid 功能实现收集(一)    
case ListItemType.EditItem:
DataGrid 功能实现收集(一)    
case ListItemType.AlternatingItem:
DataGrid 功能实现收集(一)     Button myDelButton 
= (Button)e.Item.FindControl("btnDelete");
DataGrid 功能实现收集(一)     myDelButton.Attributes.Add(
"onclick","return confirm('你真的要删除第"+(e.Item.ItemIndex+1).ToString()+"行吗?');");
DataGrid 功能实现收集(一)     
break;
DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)
3.为DataGrid添加ItemCommand事件,处理删除事件,代码如下:
DataGrid 功能实现收集(一)
if(e.CommandName == "UserDelete")
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)      
//执行删除。
DataGrid 功能实现收集(一)
   }

DataGrid 功能实现收集(一)方法三:
DataGrid 功能实现收集(一)这种方法很少见到人用,但却是最简单的方法,方法如下:
DataGrid 功能实现收集(一)将DataGrid的删除按纽的文本属性设为如下代码:
DataGrid 功能实现收集(一)
<div id=d onclick="JavaScript:return confirm('你真的要删除这一行吗?');">删除</div>
DataGrid 功能实现收集(一)

使用RenderMethod 委托实现DataGrid表头合并
DataGrid 功能实现收集(一)1using System;
DataGrid 功能实现收集(一)  2
using System.Collections;
DataGrid 功能实现收集(一)  3
using System.ComponentModel;
DataGrid 功能实现收集(一)  4
using System.Data;
DataGrid 功能实现收集(一)  5
using System.Drawing;
DataGrid 功能实现收集(一)  6
using System.Web;
DataGrid 功能实现收集(一)  7
using System.Web.SessionState;
DataGrid 功能实现收集(一)  8
using System.Web.UI;
DataGrid 功能实现收集(一)  9
using System.Web.UI.WebControls;
DataGrid 功能实现收集(一) 10
using System.Web.UI.HtmlControls;
DataGrid 功能实现收集(一) 11
using System.Data.SqlClient;
DataGrid 功能实现收集(一) 
12
DataGrid 功能实现收集(一) 13
namespace WebDataGridHeader
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
14{
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
15    /**//// <summary>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 16    ///DataGrid表头合并问题
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 17    /// </summary>
DataGrid 功能实现收集(一) 18    public class WebForm1 : System.Web.UI.Page
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
19    {
DataGrid 功能实现收集(一) 
20        protected System.Web.UI.WebControls.DataGrid DataGrid1;
DataGrid 功能实现收集(一) 
21        protected System.Web.UI.WebControls.Label Label1;
DataGrid 功能实现收集(一) 
22    
DataGrid 功能实现收集(一) 
23        private void Page_Load(object sender, System.EventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
24        {
DataGrid 功能实现收集(一) 
25            // 在此处放置用户代码以初始化页面
DataGrid 功能实现收集(一)
 26            string m_strConn = "server=.;uid=sa;pwd=sa;database=Northwind";
DataGrid 功能实现收集(一) 
27            SqlConnection conn = new SqlConnection(m_strConn);
DataGrid 功能实现收集(一) 
28            
DataGrid 功能实现收集(一) 
29            try
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
30            {
DataGrid 功能实现收集(一) 
31                conn.Open();
DataGrid 功能实现收集(一) 
32
DataGrid 功能实现收集(一) 
33                SqlCommand cmd = new SqlCommand("SELECT * FROM Employees",conn);
DataGrid 功能实现收集(一) 
34            
DataGrid 功能实现收集(一) 
35                SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataGrid 功能实现收集(一) 
36
DataGrid 功能实现收集(一) 
37                DataTable dt = new DataTable();
DataGrid 功能实现收集(一) 
38                adp.Fill(dt);
DataGrid 功能实现收集(一) 
39
DataGrid 功能实现收集(一) 
40                this.DataGrid1.DataSource = dt;
DataGrid 功能实现收集(一) 
41                this.DataGrid1.DataBind();
DataGrid 功能实现收集(一) 
42            }

DataGrid 功能实现收集(一) 
43            catch(Exception ex)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
44            {
DataGrid 功能实现收集(一) 
45                throw ex;
DataGrid 功能实现收集(一) 
46            }

DataGrid 功能实现收集(一) 
47            finally
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
48            {
DataGrid 功能实现收集(一) 
49                conn.Close();
DataGrid 功能实现收集(一) 
50            }

DataGrid 功能实现收集(一) 
51        }

DataGrid 功能实现收集(一) 
52
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
53        Web 窗体设计器生成的代码Web 窗体设计器生成的代码
DataGrid 功能实现收集(一) 
74        
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
75        /**//// <summary>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 76        /// 创建Item
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 77        /// </summary>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 78        /// <param name="sender"></param>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 79        /// <param name="e"></param>
DataGrid 功能实现收集(一) 80        private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
81        {
DataGrid 功能实现收集(一) 
82            //将Item的呈现方法定向到自定义的呈现方法上
DataGrid 功能实现收集(一)
 83            ListItemType lit = e.Item.ItemType;
DataGrid 功能实现收集(一) 
84            if(ListItemType.Header == lit)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
85            {
DataGrid 功能实现收集(一) 
86                e.Item.SetRenderMethodDelegate(new RenderMethod(NewRenderMethod));
DataGrid 功能实现收集(一) 
87            }

DataGrid 功能实现收集(一) 
88        }

DataGrid 功能实现收集(一) 
89        
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
90        /**//// <summary>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 91        /// 自定义的Item呈现方法
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 92        /// </summary>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 93        /// <param name="writer"></param>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 94        /// <param name="ctl"></param>
DataGrid 功能实现收集(一) 95        private void NewRenderMethod(HtmlTextWriter writer,Control ctl)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一) 
96        {
DataGrid 功能实现收集(一) 
97            //不需要从<TR>标签开始
DataGrid 功能实现收集(一)
 98            //输出“联系电话”列
DataGrid 功能实现收集(一)
 99            writer.Write("<TD colspan=/"3/" align=/"center/">联系电话</TD>/n");
DataGrid 功能实现收集(一)
100
DataGrid 功能实现收集(一)
101            //“地址”列必须有rowspan属性且必须在第一列呈现
DataGrid 功能实现收集(一)
102            TableCell cell = (TableCell)ctl.Controls[ctl.Controls.Count - 1];
DataGrid 功能实现收集(一)
103            cell.Attributes.Add("rowspan","2");
DataGrid 功能实现收集(一)
104            cell.RenderControl(writer);
DataGrid 功能实现收集(一)
105
DataGrid 功能实现收集(一)
106            //现在关闭第一行
DataGrid 功能实现收集(一)
107            writer.Write("</TR>/n");
DataGrid 功能实现收集(一)
108
DataGrid 功能实现收集(一)
109            //将设计时的样式属性添加到第二行使得两行的外观相似
DataGrid 功能实现收集(一)
110            this.DataGrid1.HeaderStyle.AddAttributesToRender(writer);
DataGrid 功能实现收集(一)
111
DataGrid 功能实现收集(一)
112            //插入第二行
DataGrid 功能实现收集(一)
113            writer.RenderBeginTag("TR");
DataGrid 功能实现收集(一)
114
DataGrid 功能实现收集(一)
115            //呈现除了最后一列(刚才已经呈现过了)外的所有在设计时定义的cells
DataGrid 功能实现收集(一)
116            for(int i=0;i<=ctl.Controls.Count-2;i++)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
117            {
DataGrid 功能实现收集(一)
118                ctl.Controls[i].RenderControl(writer);
DataGrid 功能实现收集(一)
119            }

DataGrid 功能实现收集(一)
120
DataGrid 功能实现收集(一)
121            //不需要以</TR>结束
DataGrid 功能实现收集(一)
122        }

DataGrid 功能实现收集(一)
123    }

DataGrid 功能实现收集(一)
124}
 
DataGrid 功能实现收集(一)

DataGrid 功能实现收集(一)测试例子中的DataGrid选择了Employees表中的四个字段 
DataGrid 功能实现收集(一)代码如下: 
DataGrid 功能实现收集(一)
<asp:DataGrid id="DataGrid1" runat="server" Width="793px" Height="296px" AutoGenerateColumns="False" 
DataGrid 功能实现收集(一)BorderColor
="#CC9966" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4"> 
DataGrid 功能实现收集(一)
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle> 
DataGrid 功能实现收集(一)
<ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle> 
DataGrid 功能实现收集(一)
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle> 
DataGrid 功能实现收集(一)
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle> 
DataGrid 功能实现收集(一)
<Columns> 
DataGrid 功能实现收集(一)
<asp:BoundColumn DataField="LastName" HeaderText="办公电话"></asp:BoundColumn> 
DataGrid 功能实现收集(一)
<asp:BoundColumn DataField="FirstName" HeaderText="住宅电话"></asp:BoundColumn> 
DataGrid 功能实现收集(一)
<asp:BoundColumn DataField="HomePhone" HeaderText="移动电话"></asp:BoundColumn> 
DataGrid 功能实现收集(一)
<asp:BoundColumn DataField="Address" HeaderText="联系地址"></asp:BoundColumn> 
DataGrid 功能实现收集(一)
</Columns> 
DataGrid 功能实现收集(一)
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle> 
DataGrid 功能实现收集(一)
</asp:DataGrid>
DataGrid中使用CheckBox的CheckedChanged事件
DataGrid 功能实现收集(一)使用DataGrid的过程中常会用到CheckBox控件,并使用它的CheckedChanged事件。使用如下:
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
1、CheckBox控件需要设置AutoPostBack="true"
DataGrid 功能实现收集(一)
<asp:CheckBox id="chbIsActive" runat="server" AutoPostBack="true"></asp:CheckBox>
DataGrid 功能实现收集(一)
2、CheckBox控件的事件须在DataGrid的ItemCreated定义才能生效
DataGrid 功能实现收集(一)        
private void grdStructure_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)        
{
DataGrid 功能实现收集(一)            
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)            
{
DataGrid 功能实现收集(一)                
DataGrid 功能实现收集(一)                CheckBox chbIsActive 
= e.Item.FindControl("chbIsActive"as CheckBox;
DataGrid 功能实现收集(一)                chbIsActive.CheckedChanged 
+= new EventHandler(chbIsActive_CheckedChanged);
DataGrid 功能实现收集(一)            }

DataGrid 功能实现收集(一)        }

DataGrid 功能实现收集(一)
3、编写事件代码
DataGrid 功能实现收集(一)        
private void chbIsActive_CheckedChanged(object sender, EventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)        
{
DataGrid 功能实现收集(一)            CheckBox chbIsActive 
= (CheckBox)sender;
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)            Guid structureUID 
= new Guid(chbIsActive.Attributes["StructureUID"]);
DataGrid 功能实现收集(一)            
bool isActive = chbIsActive.Checked;
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)            IPMStructureManager manager 
= PMStructureManagerFactory.GetInstance();
DataGrid 功能实现收集(一)            manager.SetActive(structureUID, isActive);
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)            
this.Binding();
DataGrid 功能实现收集(一)        }

DataGrid 功能实现收集(一)

在DataGrid中添加一个合计字段 DataGrid 功能实现收集(一)你是否花了很时间来阅读 ASPNG 列表?如果不是的话,我非常推荐它。你可以访问
DataGrid 功能实现收集(一)http:
//www.asp.net/ 或 http://www.asplists.com/asplists/aspngevery.asp。最近的最常见的一个问题是:“ 我怎样在 DataGrid 中显示列合计?”。 我亲自多次为这个问题提供了示例代码,因此,我想在DotNetJunkies 的标题中提供这么一份指南。 在这份指南中你将会学到怎样在 DataGrid 中编程实现对某一列的值进行统计,并在 DataGrid 的页脚中显示其合计值。这份指南*下载的示例中包括了 C# 和 Visual Basic.NET 两种代码。
DataGrid 功能实现收集(一)

DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)上面所用到的屏幕图片中的 DataGrid 是一个非常典型的 DataGrid 。有许多控制 DataGrid 外观的属性,它使用两个 BoundColumns 来操作数据,但这并不是最重要的。做好这项工作真正重要的是使用 DataGrid.OnItemDataBound 事件。这个事件将会触发每次绑定一条记录到 DataGrid。你可以为这个事件创建一个事件处理,以操作数据记录。在这种情况下,你将会得到运行时 Price 列的合计值。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)页脚指的是数据范围的最后一行。当这行被限定时,在事件句处理你可以得到 Price 列的运行时统计值。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)实施:
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)首先让我们找到一种方法来操作 Web 窗体输出。 这份指南中,你将使用一个 Web 窗体 (calcTotals.aspx) 以及一个类代码文件 (calcTotals.aspx.cs)。这份指南的意图是, 类代码将会使用 Just
-In-Time 编译器来编译。 这里是 calcTotals.aspx 的代码:
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
<%@ Page Inherits="myApp.calcTotals" Src="20010731T0101.aspx.cs" %>
DataGrid 功能实现收集(一)
<html>
DataGrid 功能实现收集(一)
<body bgcolor="white">
DataGrid 功能实现收集(一)
<asp:DataGrid id="MyGrid" runat="server"
DataGrid 功能实现收集(一)  AutoGenerateColumns
="False"
DataGrid 功能实现收集(一)  CellPadding
="4" CellSpacing="0"
DataGrid 功能实现收集(一)  BorderStyle
="Solid" BorderWidth="1"
DataGrid 功能实现收集(一)  Gridlines
="None" BorderColor="Black"
DataGrid 功能实现收集(一)  ItemStyle
-Font-Name="Verdana"
DataGrid 功能实现收集(一)  ItemStyle
-Font-Size="9pt"
DataGrid 功能实现收集(一)  HeaderStyle
-Font-Name="Verdana"
DataGrid 功能实现收集(一)  HeaderStyle
-Font-Size="10pt"
DataGrid 功能实现收集(一)  HeaderStyle
-Font-Bold="True"
DataGrid 功能实现收集(一)  HeaderStyle
-ForeColor="White"
DataGrid 功能实现收集(一)  HeaderStyle
-BackColor="Blue"
DataGrid 功能实现收集(一)  FooterStyle
-Font-Name="Verdana"
DataGrid 功能实现收集(一)  FooterStyle
-Font-Size="10pt"
DataGrid 功能实现收集(一)  FooterStyle
-Font-Bold="True"
DataGrid 功能实现收集(一)  FooterStyle
-ForeColor="White"
DataGrid 功能实现收集(一)  FooterStyle
-BackColor="Blue"
DataGrid 功能实现收集(一)  OnItemDataBound
="MyDataGrid_ItemDataBound"
DataGrid 功能实现收集(一)  ShowFooter
="True">
DataGrid 功能实现收集(一)  
<Columns>
DataGrid 功能实现收集(一)    
<asp:BoundColumn HeaderText="Title" DataField="title" />
DataGrid 功能实现收集(一)    
<asp:BoundColumn HeaderText="Price" DataField="price"
DataGrid 功能实现收集(一)      ItemStyle
-HorizontalAlign="Right"
DataGrid 功能实现收集(一)      HeaderStyle
-HorizontalAlign="Center" />
DataGrid 功能实现收集(一)   
</Columns>
DataGrid 功能实现收集(一)
</asp:DataGrid>
DataGrid 功能实现收集(一)
</body>
DataGrid 功能实现收集(一)
</html> 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)在 Web 窗体中你使用 @ Page 来直接声明这个页所继承的类代码。SRC 属性指明了类代码将使用 JIT 编译器来编译。 Web 窗体中的大部分代码样式声明用来使 DataGrid 外观变得更好看。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)最后指定的属性之一是 OnItemDataBound 属性。这个事件将会在 OnItemDataBound 事件发生时被触发。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)Web 窗体中的 DataGrid (MyGrid) 包含有两个 BoundColumns,一个是 Title ,另一个是Price。 这里将显示 Pubs 数据库(SQL Server)中 Titles 表的 title 及 price 列。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)忽略代码的定义
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)类代码在所有的地方都将使用。在类代码中,你可以操作两个事件:Page_Load 事件以及 MyGrid_OnItemDataBound 事件。还有一个私有方法 CalcTotal, 用它来简单的完成运行时统计的数学运算。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)类代码基本结构块的起始部分:
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
using System;
DataGrid 功能实现收集(一)
using System.Web;
DataGrid 功能实现收集(一)
using System.Web.UI;
DataGrid 功能实现收集(一)
using System.Web.UI.WebControls;
DataGrid 功能实现收集(一)
using System.Web.UI.HtmlControls;
DataGrid 功能实现收集(一)
using System.Data;
DataGrid 功能实现收集(一)
using System.Data.SqlClient;
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
namespace myApp
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)  
public class calcTotals : Page
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)    
protected DataGrid MyGrid;
DataGrid 功能实现收集(一)    
private double runningTotal = 0;
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)}
 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)在类代码的基本结构中,你必须使用相关语句导入名字空间(
namespace)。在类声明中,你声明了两个变量,一个是类代码中映射 Web 窗体的 DataGrid(MyGrid)控件的变量;一个是用来操作 DataGrid 的 Price 列中运行时统计的双精度值。 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)Page_Load 事件
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)在 Page_Load 事件中,你所要做的就是连接到 SQL Server 并执行一个简单的 SqlCommand。 你取得了所有 Price 值>
0 的 title 和 price 数据。你使用 SqlCommand.ExecuteReader 方法返回一个 SqlDataReader 并将其直接绑定到 DataGrid (MyGrid)。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
protected void Page_Load(object sender, EventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)  SqlConnection myConnection 
= new SqlConnection("server=Localhost;database=pubs;uid=sa;pwd=;");//创建SQL连接
DataGrid 功能实现收集(一)
  SqlCommand myCommand = new SqlCommand("SELECT title, price FROM Titles WHERE price > 0", myConnection);//创建SQL命令
DataGrid 功能实现收集(一)

DataGrid 功能实现收集(一)  
try
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)    myConnection.Open();
//打开数据库连接
DataGrid 功能实现收集(一)
    MyGrid.DataSource = myCommand.ExecuteReader();//指定 DataGrid 的数据源
DataGrid 功能实现收集(一)
    MyGrid.DataBind();//绑定数据到 DataGrid
DataGrid 功能实现收集(一)
    myConnection.Close();//关闭数据连接
DataGrid 功能实现收集(一)
  }

DataGrid 功能实现收集(一)  
catch(Exception ex)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)    
//捕获错误
DataGrid 功能实现收集(一)
    HttpContext.Current.Response.Write(ex.ToString());
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)CalcTotals 方法
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)CalcTotals 方法用来处理 runningTotal 变量。这个值将以字符串形式来传递。 你需要将它解析为双精度型,然后 runningTotal 变量就成了双精度类型。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
private void CalcTotal(string _price)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)  
try
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)    runningTotal 
+= Double.Parse(_price);
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)  
catch
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)     
//捕获错误
DataGrid 功能实现收集(一)
  }

DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)MyGrid_ItemDataBound 事件
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)MyGrid_ItemDataBound 事件在数据源中每行绑定到 DataGrid 时被调用。在这个事件处理中,你可以处理每一行数据。 这里你的目的是,你将需要调用 CalcTotals 方法并从 Price 列传递文本,并用金额型格式化每一行的 Price 列, 并在页脚行中显示 runningTotal 的值。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
public void MyDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)  
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)    CalcTotal( e.Item.Cells[
1].Text );
DataGrid 功能实现收集(一)    e.Item.Cells[
1].Text = string.Format("{0:c}", Convert.ToDouble(e.Item.Cells[1].Text));
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)  
else if(e.Item.ItemType == ListItemType.Footer )
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)    e.Item.Cells[
0].Text="Total";
DataGrid 功能实现收集(一)    e.Item.Cells[
1].Text = string.Format("{0:c}", runningTotal);
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)在 MyGrid_ItemDataBound 事件句柄中,首先你得使用 ListItemType 判断当前的 DataGridItem 是一个数据项还是AlternatingItem 行。如果是数据项,你调用 CalcTotals,并将 Price 列的值作为参数传递给它;然后你以金额格式对 Price 列进行格式化及着色。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)如果 DataGridItem 是页脚,可以用金额格式显示 runningTotal。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)总结
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)在这份指南中,你学到了怎样使用 DataGrid.OnItemDataBound 事件来实现运行时对DataGrid 的某一列进行统计。使用这个事件,你可以创建一个列的合计并可对DataGrid行的页脚进行着色。 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)

使用DataGrid动态绑定DropDownList DataGrid 功能实现收集(一)简单的使用模板列绑定DropDownList,初学者想必都会了,但有时候,我们要做的就是在编辑的时候想让某一列定制为DropDownList,并且根据正常情况下显示的值自动变换DropDownList中所选的值,然后保存选择后的值到数据库或XML文件,其实要做到这样的功能并不难,只要我们学会使用DataGrid的DataGrid1_ItemDataBound事件就行了,跟我来做个例子。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
//检索数据库的函数DataGrid 功能实现收集(一)public DataSet GetZcbd()
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)
try
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)DataSet ds
=new DataSet(); 
DataGrid 功能实现收集(一)
string searchString="select id,yy,bj from zc";
DataGrid 功能实现收集(一)da
=new OleDbDataAdapter(searchString,conn);
DataGrid 功能实现收集(一)da.Fill(ds,
"yy"); 
DataGrid 功能实现收集(一)
return ds;
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
catch
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)
return null
DataGrid 功能实现收集(一)}
 
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
//绑定DataGrid 
DataGrid 功能实现收集(一)
private void BindGrid()
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)DataSet ds 
= new DataSet();
DataGrid 功能实现收集(一)ds 
= us.GetZcbd();
DataGrid 功能实现收集(一)
if (ds!=null)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)
this.DataGrid1.DataSource = ds;
DataGrid 功能实现收集(一)
this.DataGrid1.DataBind();
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
else
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)msg.Alert(
"加载数据错误!",Page);
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)绑定好DataGrid以后,设定模板列,让其正常显示下为Label,并绑定为数据库中一ID值,在编辑状态下为DropDownList,并绑定为数据库中一Name值,我们现在要做的就是当我们选择编辑时根据Label的值自动从数据库中取出编号为ID值的姓名,并用DropDownList默认选中。(注释:为了方便大家学习,我给出一个简单代码的例子,供大家参考)
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)
if (e.Item.ItemType == ListItemType.EditItem)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)DataRowView drv 
= (DataRowView)e.Item.DataItem;
DataGrid 功能实现收集(一)
string current = drv["label1"].ToString();
DataGrid 功能实现收集(一)DropDownList ddl 
= (DropDownList)e.Item.FindControl("ddl");
DataGrid 功能实现收集(一)ddl.SelectedIndex 
= ddl.Items.IndexOf(ddl.Items.FindByValue(current));
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
if ((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem)) 
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)Label t 
= (System.Web.UI.WebControls.Label)e.Item.FindControl("label1");
DataGrid 功能实现收集(一)
string current = this.BindDDL(int.Parse(t.Text));
DataGrid 功能实现收集(一)e.Item.Cells[
1].Text = current;
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
private string BindDDL(int ddd)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)
string sss = "";
DataGrid 功能实现收集(一)
if (ddd==1)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)sss
="张三";
DataGrid 功能实现收集(一)
return sss;
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
else
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)sss
="李四";
DataGrid 功能实现收集(一)
return sss;
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)注释:msg为一个类似WinForm的messagebox对话框,不必理会。可以使用label.Text代替
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
DataGrid实现过多信息鼠标移动到记录上显示,可分页 DataGrid 功能实现收集(一)脚本代码
DataGrid 功能实现收集(一)        function Show(sea, comment)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)        
{
DataGrid 功能实现收集(一)             
//获得鼠标的X轴的坐标
DataGrid 功能实现收集(一)
            x = event.clientX + document.body.scrollLeft  ;         
DataGrid 功能实现收集(一)            
//获得鼠标的Y轴的坐标
DataGrid 功能实现收集(一)
            y = event.clientY + document.body.scrollTop  ;
DataGrid 功能实现收集(一)            
//显示弹出窗体
DataGrid 功能实现收集(一)
            Popup.style.display="block";
DataGrid 功能实现收集(一)            
//设置窗体的X,Y轴的坐标
DataGrid 功能实现收集(一)
            Popup.style.left = x;
DataGrid 功能实现收集(一)             Popup.style.top 
= y;
DataGrid 功能实现收集(一)            document.getElementById(
"td1").innerText="缺勤人员及原因:"+sea;
DataGrid 功能实现收集(一)            document.getElementById(
"td2").innerText="会议主要内容:"+comment;    
DataGrid 功能实现收集(一)        }

DataGrid 功能实现收集(一)         
//隐藏弹出窗体
DataGrid 功能实现收集(一)
         function Hide()
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)        
{
DataGrid 功能实现收集(一)            Popup.style.display
="none";
DataGrid 功能实现收集(一)        }
 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)数据绑定事件
DataGrid 功能实现收集(一)
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)   
if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    e.Item.Attributes.Add(
"onmouseover""this.oldcolor=this.style.backgroundColor;this.style.backgroundColor='#C8F7FF';");
DataGrid 功能实现收集(一)    e.Item.Attributes.Add(
"onmousemove""Show('"+dtab.Rows[e.Item.ItemIndex+(DataGrid1.CurrentPageIndex*DataGrid1.PageSize)]["TeamMeet_AbsentName"].ToString()+"','" 
DataGrid 功能实现收集(一)     
+dtab.Rows[e.Item.ItemIndex+(DataGrid1.CurrentPageIndex*DataGrid1.PageSize)]["TeamMeet_Content"].ToString()+"');"); 
DataGrid 功能实现收集(一)    e.Item.Attributes.Add(
"onmouseout"
DataGrid 功能实现收集(一)     
"this.style.backgroundColor=this.oldcolor;Hide();");  
DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一) Popup是层
DataGrid 功能实现收集(一)td1,td2是层里一个table的单元格
  datagrid中打开新窗体 DataGrid 功能实现收集(一)DataGrid1.Attributes.Add("onclick","window.open('Print_GoodsMove.aspx?GoodsMove_ID=" + Apply_ID + "','newwindow', 'height=600, width=745, top=100, left=100, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');");  跨页面实现多选DataGrid 功能实现收集(一)SelectMultiPages.aspx
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
<%@ Page EnableViewState="true" CodeBehind="SelectMultiPages.aspx.cs" Language="c#" 
DataGrid 功能实现收集(一)AutoEventWireup
="false" Inherits="eMeng.Exam.SelectMultiPages" 
%>
DataGrid 功能实现收集(一)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
DataGrid 功能实现收集(一)
<HTML>
DataGrid 功能实现收集(一)
<HEAD>
DataGrid 功能实现收集(一)
<title>跨页面实现多选</title>
DataGrid 功能实现收集(一)
<META http-equiv="content-type" content="text/html; charset=gb2312">
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
<style>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{FONT-SIZE:12PX}
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)#Status 
{text-align:left}
DataGrid 功能实现收集(一)
</style>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
<script language="JAVASCRIPT">
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
function AddRemoveValues(oChk) 
DataGrid 功能实现收集(一)
//在处理这个地方需要注意的是:你保存的值应该具有唯一性,这样才能不会替换错误的项。
DataGrid 功能实现收集(一)
if(oChk.checked)
DataGrid 功能实现收集(一)SelectMultiPage.HdnSelectedValues.value 
+= "," + oChk.value; 
DataGrid 功能实现收集(一)
else
DataGrid 功能实现收集(一)SelectMultiPage.HdnSelectedValues.value 
= SelectMultiPage.HdnSelectedValues.value.replace("," + oChk.value,""); 
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
</script>
DataGrid 功能实现收集(一)
</HEAD>
DataGrid 功能实现收集(一)
<BODY>
DataGrid 功能实现收集(一)
<form id="SelectMultiPage" runat="server">
DataGrid 功能实现收集(一)
<asp:datagrid id="DataGrid1" HorizontalAlign="Center" AutoGenerateColumns="False" Width="600px"
DataGrid 功能实现收集(一)        AllowPaging
="True" runat="server">
DataGrid 功能实现收集(一)    
<AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
DataGrid 功能实现收集(一)    
<HeaderStyle BackColor="#AAAADD" Font-Bold="True" HorizontalAlign="Center"></HeaderStyle>
DataGrid 功能实现收集(一)    
<PagerStyle HorizontalAlign="Right" Mode="NumericPages" Visible="True"></PagerStyle>
DataGrid 功能实现收集(一)    
<Columns>
DataGrid 功能实现收集(一)        
<asp:TemplateColumn HeaderText="选择">
DataGrid 功能实现收集(一)            
<ItemTemplate>
DataGrid 功能实现收集(一)                
<input type="checkbox" runat="server" id="chkSelect" onclick="AddRemoveValues(this)"
DataGrid 功能实现收集(一)                    value
='<%#DataBinder.Eval(Container.DataItem,"Title")%>'/>
DataGrid 功能实现收集(一)            
</ItemTemplate>
DataGrid 功能实现收集(一)        
</asp:TemplateColumn>
DataGrid 功能实现收集(一)        
<asp:TemplateColumn HeaderText="文章标题">
DataGrid 功能实现收集(一)            
<ItemTemplate>
DataGrid 功能实现收集(一)                
<asp:Literal Text='<%# DataBinder.Eval(Container.DataItem, "Title") %>' runat="server" ID="TitleShow"/>
DataGrid 功能实现收集(一)            
</ItemTemplate>
DataGrid 功能实现收集(一)        
</asp:TemplateColumn>
DataGrid 功能实现收集(一)        
<asp:TemplateColumn HeaderText="发布时间">
DataGrid 功能实现收集(一)            
<ItemTemplate>
DataGrid 功能实现收集(一)                
<asp:Literal Text='<%# DataBinder.Eval(Container.DataItem, "CreateDate").ToString() %>' runat="server"/>
DataGrid 功能实现收集(一)            
</ItemTemplate>
DataGrid 功能实现收集(一)        
</asp:TemplateColumn>
DataGrid 功能实现收集(一)    
</Columns>
DataGrid 功能实现收集(一)
</asp:datagrid>
DataGrid 功能实现收集(一)
<div align=center>
DataGrid 功能实现收集(一)
<asp:button id="Button1" runat="server" Text="得到所选的值"></asp:button>
DataGrid 功能实现收集(一)
<div id="Status">
DataGrid 功能实现收集(一)
<asp:label id="Label1" runat="server"></asp:label>
DataGrid 功能实现收集(一)
</div>
DataGrid 功能实现收集(一)
<INPUT id="HdnSelectedValues" type="hidden" name="HdnSelectedValues" runat="server">
DataGrid 功能实现收集(一)
</div>
DataGrid 功能实现收集(一)
</form>
DataGrid 功能实现收集(一)
</BODY>
DataGrid 功能实现收集(一)
</HTML>
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)SelectMultiPages.aspx.cs
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
using System;
DataGrid 功能实现收集(一)
using System.Collections;
DataGrid 功能实现收集(一)
using System.ComponentModel;
DataGrid 功能实现收集(一)
using System.Data;
DataGrid 功能实现收集(一)
using System.Data.OleDb;
DataGrid 功能实现收集(一)
using System.Drawing;
DataGrid 功能实现收集(一)
using System.Web;
DataGrid 功能实现收集(一)
using System.Web.SessionState;
DataGrid 功能实现收集(一)
using System.Web.UI;
DataGrid 功能实现收集(一)
using System.Web.UI.WebControls;
DataGrid 功能实现收集(一)
using System.Web.UI.HtmlControls;
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
namespace eMeng.Exam
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
/// <summary>
DataGrid 功能实现收集(一)
/// SelectMultiPages 的摘要说明。
DataGrid 功能实现收集(一)
/// </summary>

DataGrid 功能实现收集(一)public class SelectMultiPages : System.Web.UI.Page
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)
protected System.Web.UI.WebControls.Button Button1;
DataGrid 功能实现收集(一)
protected System.Web.UI.WebControls.Label Label1;
DataGrid 功能实现收集(一)
protected System.Web.UI.HtmlControls.HtmlInputHidden HdnSelectedValues;
DataGrid 功能实现收集(一)
protected System.Web.UI.WebControls.DataGrid DataGrid1;
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
private void Page_Load(object sender, System.EventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)    
// 在此处放置用户代码以初始化页面
DataGrid 功能实现收集(一)
    if(!Page.IsPostBack)
DataGrid 功能实现收集(一)    BindData();
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
private void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)    DataGrid1.CurrentPageIndex 
= e.NewPageIndex;
DataGrid 功能实现收集(一)    BindData(); 
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
void BindData()
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)    OleDbConnection cn 
= new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" 
DataGrid 功能实现收集(一)        
+ HttpContext.Current.Server.MapPath("aspx.mdb"));
DataGrid 功能实现收集(一)    OleDbDataAdapter da 
= new OleDbDataAdapter("Select Title, CreateDate from Document",cn);
DataGrid 功能实现收集(一)    DataSet ds 
= new DataSet();
DataGrid 功能实现收集(一)    da.Fill(ds);
DataGrid 功能实现收集(一)    DataGrid1.DataSource
= ds;
DataGrid 功能实现收集(一)    DataGrid1.DataBind();
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)    
//重新显示所选择的项目
DataGrid 功能实现收集(一)
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)    
{
DataGrid 功能实现收集(一)        
if(HdnSelectedValues.Value.IndexOf(((Literal)e.Item.Cells[1].FindControl("TitleShow")).Text) >= 0 )
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)        
{
DataGrid 功能实现收集(一)            HtmlInputCheckBox ChkSelected 
= (HtmlInputCheckBox)(e.Item.Cells[0].FindControl("ChkSelect"));
DataGrid 功能实现收集(一)            ChkSelected.Checked 
= true;
DataGrid 功能实现收集(一)        }

DataGrid 功能实现收集(一)    }

DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
private void Button1_Click(object sender, System.EventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
{
DataGrid 功能实现收集(一)    
//为了显示的方便进行替换的
DataGrid 功能实现收集(一)
    Label1.Text = HdnSelectedValues.Value.Replace(",","<li>");
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)
Web 窗体设计器生成的代码    
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)}

DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
如何给DataGrid添加自动增长列 DataGrid 功能实现收集(一)我们用Northwind数据库做例子:
DataGrid 功能实现收集(一)html页面的DataGrid如下所示:
DataGrid 功能实现收集(一)
<asp:datagrid id="grdTest" runat="server" Height="228px" Width="262px" AutoGenerateColumns="False" AllowPaging="True">
DataGrid 功能实现收集(一)     
<Columns>
DataGrid 功能实现收集(一)      
<asp:TemplateColumn>
DataGrid 功能实现收集(一)       
<ItemTemplate>
DataGrid 功能实现收集(一)
<!-- 这里是关键-->
DataGrid 功能实现收集(一)        
<SPAN>
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)          
<%# Container.ItemIndex+1 %></SPAN>
DataGrid 功能实现收集(一)       
</ItemTemplate>
DataGrid 功能实现收集(一)      
</asp:TemplateColumn>
DataGrid 功能实现收集(一)      
<asp:BoundColumn DataField="CategoryName"></asp:BoundColumn>
DataGrid 功能实现收集(一)      
<asp:BoundColumn DataField="Description"></asp:BoundColumn>
DataGrid 功能实现收集(一)     
</Columns>
DataGrid 功能实现收集(一)    
</asp:datagrid>
DataGrid 功能实现收集(一)下面我们可以写他的后台代码cs的文件了我们在它的Page_Load里面添加绑定方法如下所示:
DataGrid 功能实现收集(一)private void Page_Load(object sender, System.EventArgs e)
DataGrid 功能实现收集(一)  {
DataGrid 功能实现收集(一)   // 在此处放置用户代码以初始化页面
DataGrid 功能实现收集(一)   strConnection = ConfigurationSettings.AppSettings["sa"].ToString();
DataGrid 功能实现收集(一)   myConnection = new SqlConnection(strConnection);
DataGrid 功能实现收集(一)   SqlDataAdapter myAdapter = new SqlDataAdapter("SELECT CategoryName, Description FROM Categories",myConnection);
DataGrid 功能实现收集(一)// 为了分页方便ds是一个全局的变量
DataGrid 功能实现收集(一)   myAdapter.Fill(ds);
DataGrid 功能实现收集(一)   this.grdTest.DataSource = ds.Tables[0].DefaultView;
DataGrid 功能实现收集(一)   this.grdTest.DataBind();
DataGrid 功能实现收集(一)}
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)从上面的过程可以看出我们使用的是表Categories,这样我们就可以产生一列自增长的列,此列是从1开始的。如果我们想要一个从0开始的列有该怎么办呢?我们可以把
<!-- 这里是关键-->下面的<span>里面的东西换成<asp:Label id=lblRowNumber runat="server" Text='<%# DataBinder.Eval(Container, "ItemIndex", "{0}") %>'>就可以了。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)如果我们想要实现分页也显示的方法我们将使用DataTable的方法来实现,首先我们将DataGrid的列全部变成绑定列(为了方便演示,不是必须)。如下所示:
DataGrid 功能实现收集(一)
<asp:table id="tbData" runat="server" BackColor="LightSteelBlue" Height="13px" Width="16px" Font-Names="宋体" Font-Name="宋体" Font-Size="8pt" CellPadding="1" CellSpacing="0" BorderColor="black" BorderWidth="1" Gridlines="Both"></asp:table><br/>
DataGrid 功能实现收集(一)    
<asp:datagrid id="grdTest" runat="server" Height="228px" Width="262px" AutoGenerateColumns="False" PageSize="2" AllowPaging="True">
DataGrid 功能实现收集(一)     
<Columns>
DataGrid 功能实现收集(一)      
<asp:BoundColumn DataField="RowNumber" HeaderText="RowNumber"></asp:BoundColumn>
DataGrid 功能实现收集(一)      
<asp:BoundColumn DataField="CategoryName"></asp:BoundColumn>
DataGrid 功能实现收集(一)      
<asp:BoundColumn DataField="Description"></asp:BoundColumn>
DataGrid 功能实现收集(一)     
</Columns>
DataGrid 功能实现收集(一)    
</asp:datagrid>
DataGrid 功能实现收集(一)在后台我们添加一个函数:
DataGrid 功能实现收集(一)private DataTable GetRowNumberTable(DataTable dt){
DataGrid 功能实现收集(一)   DataColumn col = new DataColumn("RowNumber",Type.GetType("System.Int32"));
DataGrid 功能实现收集(一)   dt.Columns.Add(col);
DataGrid 功能实现收集(一)   for(int i = 0;i
<=dt.Rows.Count-1;i++){
DataGrid 功能实现收集(一)    if(0 
== i) 
DataGrid 功能实现收集(一)     dt.Rows[i][col] 
= 1;
DataGrid 功能实现收集(一)    
else 
DataGrid 功能实现收集(一)     dt.Rows[i][col] 
= Convert.ToInt32(dt.Rows[i-1][col]) +1;
DataGrid 功能实现收集(一)   }
DataGrid 功能实现收集(一)   return dt;
DataGrid 功能实现收集(一)  }
DataGrid 功能实现收集(一)然后我们将原来数据源改成如下:
DataGrid 功能实现收集(一)this.grdTest.DataSource 
= this.GetRowNumberTable(ds.Tables[0]).DefaultView;
DataGrid 功能实现收集(一)
这样一来即使分页,数字也是连续的,并且将编号应用于所有的行而不是当前这一页的行。
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)
在多线程里查询数据库并填充dataGrid
DataGrid 功能实现收集(一) 在查询大数据量时,窗体界面会不动,“正在查询DataGrid 功能实现收集(一)”的提示也不能显示。所以打算用多线程来实现,
DataGrid 功能实现收集(一)可是当在线程里面执行到 
this.dataGridDF.DataSource=dt.DefaultView;填充数据
DataGrid 功能实现收集(一)时却提示报错,说什么该线程不能调用主线程创建的控件等等。
DataGrid 功能实现收集(一)后来查了许多资料,终于搞定。可以在查询数据库时操作别的了,“正在查询DataGrid 功能实现收集(一)”的提示也显示了。 
DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)
//或者在前面用一个线程查询,在线程里调用dataGrid.BeginInvoke(异步方法)来单独填充
DataGrid 功能实现收集(一)
 
DataGrid 功能实现收集(一)  
public delegate void myDelegate();
DataGrid 功能实现收集(一)  DataTable dt;
DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)  
private void btnDianJia_Click(object sender, System.EventArgs e)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)   
try
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    mythread 
= new Thread(new ThreadStart(ThreadWork));
DataGrid 功能实现收集(一)    mythread.Start();    
DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)   
catch(System.Exception ex)
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    MessageBox.Show(
this,ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
DataGrid 功能实现收集(一)   }
   
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)  
void ThreadWork()
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)   
this.dataGridDJ.CaptionText="正在查询电价数据DataGrid 功能实现收集(一)";
DataGrid 功能实现收集(一)   mf.statusBarPanel1.Text
="正在查询电价数据DataGrid 功能实现收集(一)";
DataGrid 功能实现收集(一)   
this.Cursor=Cursors.WaitCursor;
DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)
DataGrid 功能实现收集(一)   
string shijian=this.dateTimeDianJia.DateValue;
DataGrid 功能实现收集(一)   DateTime today
=DateTime.Today;
DataGrid 功能实现收集(一)   
string mingcheng=this.txtMingCheng.Text;
DataGrid 功能实现收集(一)   
string leibie=this.cmbBoxLiebie_DJ.SelectedValue.ToString();
DataGrid 功能实现收集(一)   PowerWeb.BLL.DianFeiDianJia.DianJia dj
=new PowerWeb.BLL.DianFeiDianJia.DianJia();
DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)   
if(shijian==today.ToString("yyyyMM"))
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    dt
=dj.GetList(leibie,mingcheng).Tables[0];
DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)   
else
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)   
{
DataGrid 功能实现收集(一)    dt
=dj.GetListOld(leibie,mingcheng,shijian).Tables[0];
DataGrid 功能实现收集(一)   }

DataGrid 功能实现收集(一)   
this.dataGridDJ.CaptionText=shijian+"电价信息 (共计条"+dt.Rows.Count.ToString()+"记录)";
DataGrid 功能实现收集(一) 
DataGrid 功能实现收集(一)   dataGridDJ.BeginInvoke(
new myDelegate(FillData));//异步调用(来填充)
DataGrid 功能实现收集(一)
   
DataGrid 功能实现收集(一)   
this.Cursor=Cursors.Default;
DataGrid 功能实现收集(一)   mf.statusBarPanel1.Text
="查询结束";
DataGrid 功能实现收集(一)  }

DataGrid 功能实现收集(一)  
DataGrid 功能实现收集(一)  
private void FillData()
DataGrid 功能实现收集(一)DataGrid 功能实现收集(一)  
{
DataGrid 功能实现收集(一)   
this.dataGridDJ.DataSource=dt.DefaultView;
DataGrid 功能实现收集(一)  }