DataGrid相邻行有相同内容时对指定列合并
![](/assets/blank.gif)
/// <summary>
![](/assets/blank.gif)
/// DataGrid相邻行有相同内容时对指定列合并
![](/assets/blank.gif)
/// </summary>
![](/assets/blank.gif)
/// <param name="spangrid">格式化的DataGrid的ID</param>
![](/assets/blank.gif)
/// <param name="spancell">要合并的列</param>
![](/assets/blank.gif)
/// <param name="spanby">合并所依据数据的列</param>
![](/assets/blank.gif)
public void FormatGrid(DataGrid spangrid,int spancell,int spanby)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if(spanby<0 || spanby>spangrid.Items.Count)
![](/assets/blank.gif)
return;
![](/assets/blank.gif)
int rowspan = 1;
![](/assets/blank.gif)
for(int i = 1;i<spangrid.Items.Count;i++)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if(spangrid.Items[i].Cells[spanby].Text == spangrid.Items[i-1].Cells[spanby].Text)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
rowspan +=1;
![](/assets/blank.gif)
spangrid.Items[i].Cells[spancell].Visible = false;
![](/assets/blank.gif)
spangrid.Items[i-rowspan+1].Cells[spancell].RowSpan = rowspan;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
else
![](/assets/blank.gif)
{
![](/assets/blank.gif)
string str = spangrid.Items[i].Cells[spanby].Text;
![](/assets/blank.gif)
string str1 = spangrid.Items[i-1].Cells[spanby].Text;
![](/assets/blank.gif)
rowspan = 1;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
datagrid加checkbox实现分页不丢失选择的记录
![](/assets/blank.gif)
namespace checkboc_page
![](/assets/blank.gif)
{
![](/assets/blank.gif)
/// <summary>
![](/assets/blank.gif)
/// WebForm1 的摘要说明。
![](/assets/blank.gif)
/// </summary>
![](/assets/blank.gif)
public class WebForm1 : System.Web.UI.Page
![](/assets/blank.gif)
{
![](/assets/blank.gif)
protected System.Web.UI.WebControls.Button Button1;
![](/assets/blank.gif)
protected System.Web.UI.WebControls.DataGrid DataGrid1;
![](/assets/blank.gif)
private void Page_Load(object sender, System.EventArgs e)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if(!Page.IsPostBack)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
show();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
private void show()
![](/assets/blank.gif)
{
![](/assets/blank.gif)
string conn = ConfigurationSettings.AppSettings.Get("Connstring");
![](/assets/blank.gif)
DataSet ds = new DataSet();
![](/assets/blank.gif)
using( SqlConnection con = new SqlConnection(conn))
![](/assets/blank.gif)
{
![](/assets/blank.gif)
con.Open();
![](/assets/blank.gif)
SqlCommand comm = new SqlCommand();
![](/assets/blank.gif)
SqlDataAdapter da =new SqlDataAdapter();
![](/assets/blank.gif)
da.SelectCommand = new SqlCommand();
![](/assets/blank.gif)
da.SelectCommand.Connection = con;
![](/assets/blank.gif)
da.SelectCommand.CommandText = "select * from Orders";
![](/assets/blank.gif)
da.SelectCommand.CommandType = CommandType.Text;
![](/assets/blank.gif)
da.Fill(ds);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
this.DataGrid1.DataSource = ds.Tables[0];
![](/assets/blank.gif)
this.DataGrid1.DataBind();
![](/assets/blank.gif)
if(Session["userlist"]!=null)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
Hashtable ht =(Hashtable) Session["userlist"];
![](/assets/blank.gif)
if(ht!=null)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
for(int i = 0 ;i<DataGrid1.Items.Count ;i++)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if (ht.ContainsKey(DataGrid1.Items[i].Cells[0].Text.ToString().Trim()))
![](/assets/blank.gif)
(DataGrid1.Items[i].Cells[2].FindControl("CheckBox1") as CheckBox).Checked = true;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
private void check()
![](/assets/blank.gif)
{
![](/assets/blank.gif)
Hashtable ht = new Hashtable();
![](/assets/blank.gif)
if(Session["userlist"]!=null)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
ht =(Hashtable) Session["userlist"];
![](/assets/blank.gif)
if(ht!=null)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
for(int i = 0 ;i<DataGrid1.Items.Count ;i++)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if ( (DataGrid1.Items[i].Cells[2].FindControl("CheckBox1") as CheckBox).Checked)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if (! ht.ContainsKey(DataGrid1.Items[i].Cells[0].Text.ToString().Trim()))
![](/assets/blank.gif)
{
![](/assets/blank.gif)
ht.Add(DataGrid1.Items[i].Cells[0].Text.ToString().Trim(),DataGrid1.Items[i].Cells[1].Text.ToString().Trim());
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
else
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if ( ht.ContainsKey(DataGrid1.Items[i].Cells[0].Text.ToString().Trim()))
![](/assets/blank.gif)
{
![](/assets/blank.gif)
ht.Remove(DataGrid1.Items[i].Cells[0].Text.ToString().Trim());
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
else
![](/assets/blank.gif)
{
![](/assets/blank.gif)
for(int i = 0 ;i<DataGrid1.Items.Count ;i++)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if ( (DataGrid1.Items[i].Cells[2].FindControl("CheckBox1") as CheckBox).Checked)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
ht.Add(DataGrid1.Items[i].Cells[0].Text.ToString().Trim(),DataGrid1.Items[i].Cells[1].Text.ToString().Trim());
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
Session["userlist"] = ht;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
Web 窗体设计器生成的代码
![](/assets/blank.gif)
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
check();
![](/assets/blank.gif)
DataGrid1.CurrentPageIndex = e.NewPageIndex;
![](/assets/blank.gif)
show();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
private void Button1_Click(object sender, System.EventArgs e)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
check();
![](/assets/blank.gif)
Hashtable ht = (Hashtable)Session["userlist"];
![](/assets/blank.gif)
foreach (DictionaryEntry objDE in ht)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
Response.Write(objDE.Value.ToString());
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
DataGrid中添加删除确认对话框 多种实现
![](/assets/blank.gif)
在DataGrid的使用中,经常需要为删除按纽添加确认对话框,根据我的学习经验,总结了三种方法,原理都是在客户端为删除按纽添加脚本代码来实现删除前弹出确认对话框。
![](/assets/blank.gif)
方法一:
![](/assets/blank.gif)
当为DataGrid控件添加删除按纽后,为DataGrid控件添加ItemDataBound事件处理程序,代码如下:
![](/assets/blank.gif)
//添加删除确认对话框。
![](/assets/blank.gif)
switch(e.Item.ItemType)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
case ListItemType.Item:
![](/assets/blank.gif)
case ListItemType.EditItem:
![](/assets/blank.gif)
case ListItemType.AlternatingItem:
![](/assets/blank.gif)
((LinkButton)e.Item.Cells[4].Controls[0]).Attributes.Add("onclick","return confirm('你真的要删除第"+(e.Item.ItemIndex+1).ToString()+"行吗?');");
![](/assets/blank.gif)
break;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
其中,e.Item.Cells[4]说明你添加的删除按纽在DataGrid控件中位于第五列,列号从0开始。
![](/assets/blank.gif)
方法二:使用模板列
![](/assets/blank.gif)
1.为DataGrid添加一个模板列,名为“自定义删除”,在这个模板列中添加一个按纽,将按纽的CommandName属性设为UserDelete;
![](/assets/blank.gif)
2.为DataGrid添加ItemCreated事件,添加客户端脚本程序,代码如下:
![](/assets/blank.gif)
switch(e.Item.ItemType)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
case ListItemType.Item:
![](/assets/blank.gif)
case ListItemType.EditItem:
![](/assets/blank.gif)
case ListItemType.AlternatingItem:
![](/assets/blank.gif)
Button myDelButton = (Button)e.Item.FindControl("btnDelete");
![](/assets/blank.gif)
myDelButton.Attributes.Add("onclick","return confirm('你真的要删除第"+(e.Item.ItemIndex+1).ToString()+"行吗?');");
![](/assets/blank.gif)
break;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
3.为DataGrid添加ItemCommand事件,处理删除事件,代码如下:
![](/assets/blank.gif)
if(e.CommandName == "UserDelete")
![](/assets/blank.gif)
{
![](/assets/blank.gif)
//执行删除。
![](/assets/blank.gif)
}
![](/assets/blank.gif)
方法三:
![](/assets/blank.gif)
这种方法很少见到人用,但却是最简单的方法,方法如下:
![](/assets/blank.gif)
将DataGrid的删除按纽的文本属性设为如下代码:
![](/assets/blank.gif)
<div id=d onclick="JavaScript:return confirm('你真的要删除这一行吗?');">删除</div>
使用RenderMethod 委托实现DataGrid表头合并
![](/assets/blank.gif)
1using System;
![](/assets/blank.gif)
2using System.Collections;
![](/assets/blank.gif)
3using System.ComponentModel;
![](/assets/blank.gif)
4using System.Data;
![](/assets/blank.gif)
5using System.Drawing;
![](/assets/blank.gif)
6using System.Web;
![](/assets/blank.gif)
7using System.Web.SessionState;
![](/assets/blank.gif)
8using System.Web.UI;
![](/assets/blank.gif)
9using System.Web.UI.WebControls;
![](/assets/blank.gif)
10using System.Web.UI.HtmlControls;
![](/assets/blank.gif)
11using System.Data.SqlClient;
![](/assets/blank.gif)
12
![](/assets/blank.gif)
13namespace WebDataGridHeader
![](/assets/blank.gif)
14{
![](/assets/blank.gif)
15 /**//// <summary>
![](/assets/blank.gif)
16 ///DataGrid表头合并问题
![](/assets/blank.gif)
17 /// </summary>
![](/assets/blank.gif)
18 public class WebForm1 : System.Web.UI.Page
![](/assets/blank.gif)
19 {
![](/assets/blank.gif)
20 protected System.Web.UI.WebControls.DataGrid DataGrid1;
![](/assets/blank.gif)
21 protected System.Web.UI.WebControls.Label Label1;
![](/assets/blank.gif)
22
![](/assets/blank.gif)
23 private void Page_Load(object sender, System.EventArgs e)
![](/assets/blank.gif)
24 {
![](/assets/blank.gif)
25 // 在此处放置用户代码以初始化页面
![](/assets/blank.gif)
26 string m_strConn = "server=.;uid=sa;pwd=sa;database=Northwind";
![](/assets/blank.gif)
27 SqlConnection conn = new SqlConnection(m_strConn);
![](/assets/blank.gif)
28
![](/assets/blank.gif)
29 try
![](/assets/blank.gif)
30 {
![](/assets/blank.gif)
31 conn.Open();
![](/assets/blank.gif)
32
![](/assets/blank.gif)
33 SqlCommand cmd = new SqlCommand("SELECT * FROM Employees",conn);
![](/assets/blank.gif)
34
![](/assets/blank.gif)
35 SqlDataAdapter adp = new SqlDataAdapter(cmd);
![](/assets/blank.gif)
36
![](/assets/blank.gif)
37 DataTable dt = new DataTable();
![](/assets/blank.gif)
38 adp.Fill(dt);
![](/assets/blank.gif)
39
![](/assets/blank.gif)
40 this.DataGrid1.DataSource = dt;
![](/assets/blank.gif)
41 this.DataGrid1.DataBind();
![](/assets/blank.gif)
42 }
![](/assets/blank.gif)
43 catch(Exception ex)
![](/assets/blank.gif)
44 {
![](/assets/blank.gif)
45 throw ex;
![](/assets/blank.gif)
46 }
![](/assets/blank.gif)
47 finally
![](/assets/blank.gif)
48 {
![](/assets/blank.gif)
49 conn.Close();
![](/assets/blank.gif)
50 }
![](/assets/blank.gif)
51 }
![](/assets/blank.gif)
52
![](/assets/blank.gif)
53 Web 窗体设计器生成的代码Web 窗体设计器生成的代码
![](/assets/blank.gif)
74
![](/assets/blank.gif)
75 /**//// <summary>
![](/assets/blank.gif)
76 /// 创建Item
![](/assets/blank.gif)
77 /// </summary>
![](/assets/blank.gif)
78 /// <param name="sender"></param>
![](/assets/blank.gif)
79 /// <param name="e"></param>
![](/assets/blank.gif)
80 private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
![](/assets/blank.gif)
81 {
![](/assets/blank.gif)
82 //将Item的呈现方法定向到自定义的呈现方法上
![](/assets/blank.gif)
83 ListItemType lit = e.Item.ItemType;
![](/assets/blank.gif)
84 if(ListItemType.Header == lit)
![](/assets/blank.gif)
85 {
![](/assets/blank.gif)
86 e.Item.SetRenderMethodDelegate(new RenderMethod(NewRenderMethod));
![](/assets/blank.gif)
87 }
![](/assets/blank.gif)
88 }
![](/assets/blank.gif)
89
![](/assets/blank.gif)
90 /**//// <summary>
![](/assets/blank.gif)
91 /// 自定义的Item呈现方法
![](/assets/blank.gif)
92 /// </summary>
![](/assets/blank.gif)
93 /// <param name="writer"></param>
![](/assets/blank.gif)
94 /// <param name="ctl"></param>
![](/assets/blank.gif)
95 private void NewRenderMethod(HtmlTextWriter writer,Control ctl)
![](/assets/blank.gif)
96 {
![](/assets/blank.gif)
97 //不需要从<TR>标签开始
![](/assets/blank.gif)
98 //输出“联系电话”列
![](/assets/blank.gif)
99 writer.Write("<TD colspan=\"3\" align=\"center\">联系电话</TD>\n");
![](/assets/blank.gif)
100
![](/assets/blank.gif)
101 //“地址”列必须有rowspan属性且必须在第一列呈现
![](/assets/blank.gif)
102 TableCell cell = (TableCell)ctl.Controls[ctl.Controls.Count - 1];
![](/assets/blank.gif)
103 cell.Attributes.Add("rowspan","2");
![](/assets/blank.gif)
104 cell.RenderControl(writer);
![](/assets/blank.gif)
105
![](/assets/blank.gif)
106 //现在关闭第一行
![](/assets/blank.gif)
107 writer.Write("</TR>\n");
![](/assets/blank.gif)
108
![](/assets/blank.gif)
109 //将设计时的样式属性添加到第二行使得两行的外观相似
![](/assets/blank.gif)
110 this.DataGrid1.HeaderStyle.AddAttributesToRender(writer);
![](/assets/blank.gif)
111
![](/assets/blank.gif)
112 //插入第二行
![](/assets/blank.gif)
113 writer.RenderBeginTag("TR");
![](/assets/blank.gif)
114
![](/assets/blank.gif)
115 //呈现除了最后一列(刚才已经呈现过了)外的所有在设计时定义的cells
![](/assets/blank.gif)
116 for(int i=0;i<=ctl.Controls.Count-2;i++)
![](/assets/blank.gif)
117 {
![](/assets/blank.gif)
118 ctl.Controls[i].RenderControl(writer);
![](/assets/blank.gif)
119 }
![](/assets/blank.gif)
120
![](/assets/blank.gif)
121 //不需要以</TR>结束
![](/assets/blank.gif)
122 }
![](/assets/blank.gif)
123 }
![](/assets/blank.gif)
124}
![](/assets/blank.gif)
测试例子中的DataGrid选择了Employees表中的四个字段
![](/assets/blank.gif)
代码如下:
![](/assets/blank.gif)
<asp:DataGrid id="DataGrid1" runat="server" Width="793px" Height="296px" AutoGenerateColumns="False"
![](/assets/blank.gif)
BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4">
![](/assets/blank.gif)
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
![](/assets/blank.gif)
<ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
![](/assets/blank.gif)
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
![](/assets/blank.gif)
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
![](/assets/blank.gif)
<Columns>
![](/assets/blank.gif)
<asp:BoundColumn DataField="LastName" HeaderText="办公电话"></asp:BoundColumn>
![](/assets/blank.gif)
<asp:BoundColumn DataField="FirstName" HeaderText="住宅电话"></asp:BoundColumn>
![](/assets/blank.gif)
<asp:BoundColumn DataField="HomePhone" HeaderText="移动电话"></asp:BoundColumn>
![](/assets/blank.gif)
<asp:BoundColumn DataField="Address" HeaderText="联系地址"></asp:BoundColumn>
![](/assets/blank.gif)
</Columns>
![](/assets/blank.gif)
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>
![](/assets/blank.gif)
</asp:DataGrid>
DataGrid中使用CheckBox的CheckedChanged事件
![](/assets/blank.gif)
使用DataGrid的过程中常会用到CheckBox控件,并使用它的CheckedChanged事件。使用如下:
![](/assets/blank.gif)
1、CheckBox控件需要设置AutoPostBack="true"
![](/assets/blank.gif)
<asp:CheckBox id="chbIsActive" runat="server" AutoPostBack="true"></asp:CheckBox>
![](/assets/blank.gif)
2、CheckBox控件的事件须在DataGrid的ItemCreated定义才能生效
![](/assets/blank.gif)
private void grdStructure_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
CheckBox chbIsActive = e.Item.FindControl("chbIsActive") as CheckBox;
![](/assets/blank.gif)
chbIsActive.CheckedChanged += new EventHandler(chbIsActive_CheckedChanged);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
3、编写事件代码
![](/assets/blank.gif)
private void chbIsActive_CheckedChanged(object sender, EventArgs e)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
CheckBox chbIsActive = (CheckBox)sender;
![](/assets/blank.gif)
Guid structureUID = new Guid(chbIsActive.Attributes["StructureUID"]);
![](/assets/blank.gif)
bool isActive = chbIsActive.Checked;
![](/assets/blank.gif)
IPMStructureManager manager = PMStructureManagerFactory.GetInstance();
![](/assets/blank.gif)
manager.SetActive(structureUID, isActive);
![](/assets/blank.gif)
this.Binding();
![](/assets/blank.gif)
}
在DataGrid中添加一个合计字段
使用DataGrid动态绑定DropDownList
![](/assets/blank.gif)
简单的使用模板列绑定DropDownList,初学者想必都会了,但有时候,我们要做的就是在编辑的时候想让某一列定制为DropDownList,并且根据正常情况下显示的值自动变换DropDownList中所选的值,然后保存选择后的值到数据库或XML文件,其实要做到这样的功能并不难,只要我们学会使用DataGrid的DataGrid1_ItemDataBound事件就行了,跟我来做个例子。
![](/assets/blank.gif)
//检索数据库的函数
![](/assets/blank.gif)
public DataSet GetZcbd()
![](/assets/blank.gif)
{
![](/assets/blank.gif)
try
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DataSet ds=new DataSet();
![](/assets/blank.gif)
string searchString="select id,yy,bj from zc";
![](/assets/blank.gif)
da=new OleDbDataAdapter(searchString,conn);
![](/assets/blank.gif)
da.Fill(ds,"yy");
![](/assets/blank.gif)
return ds;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
catch
![](/assets/blank.gif)
{
![](/assets/blank.gif)
return null;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
//绑定DataGrid
![](/assets/blank.gif)
private void BindGrid()
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DataSet ds = new DataSet();
![](/assets/blank.gif)
ds = us.GetZcbd();
![](/assets/blank.gif)
if (ds!=null)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
this.DataGrid1.DataSource = ds;
![](/assets/blank.gif)
this.DataGrid1.DataBind();
![](/assets/blank.gif)
}
![](/assets/blank.gif)
else
![](/assets/blank.gif)
{
![](/assets/blank.gif)
msg.Alert("加载数据错误!",Page);
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
绑定好DataGrid以后,设定模板列,让其正常显示下为Label,并绑定为数据库中一ID值,在编辑状态下为DropDownList,并绑定为数据库中一Name值,我们现在要做的就是当我们选择编辑时根据Label的值自动从数据库中取出编号为ID值的姓名,并用DropDownList默认选中。(注释:为了方便大家学习,我给出一个简单代码的例子,供大家参考)
![](/assets/blank.gif)
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if (e.Item.ItemType == ListItemType.EditItem)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
DataRowView drv = (DataRowView)e.Item.DataItem;
![](/assets/blank.gif)
string current = drv["label1"].ToString();
![](/assets/blank.gif)
DropDownList ddl = (DropDownList)e.Item.FindControl("ddl");
![](/assets/blank.gif)
ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(current));
![](/assets/blank.gif)
}
![](/assets/blank.gif)
if ((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem))
![](/assets/blank.gif)
{
![](/assets/blank.gif)
Label t = (System.Web.UI.WebControls.Label)e.Item.FindControl("label1");
![](/assets/blank.gif)
string current = this.BindDDL(int.Parse(t.Text));
![](/assets/blank.gif)
e.Item.Cells[1].Text = current;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
private string BindDDL(int ddd)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
string sss = "";
![](/assets/blank.gif)
if (ddd==1)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
sss="张三";
![](/assets/blank.gif)
return sss;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
else
![](/assets/blank.gif)
{
![](/assets/blank.gif)
sss="李四";
![](/assets/blank.gif)
return sss;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
注释:msg为一个类似WinForm的messagebox对话框,不必理会。可以使用label.Text代替
DataGrid实现过多信息鼠标移动到记录上显示,可分页
![](/assets/blank.gif)
脚本代码
![](/assets/blank.gif)
function Show(sea, comment)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
//获得鼠标的X轴的坐标
![](/assets/blank.gif)
x = event.clientX + document.body.scrollLeft ;
![](/assets/blank.gif)
//获得鼠标的Y轴的坐标
![](/assets/blank.gif)
y = event.clientY + document.body.scrollTop ;
![](/assets/blank.gif)
//显示弹出窗体
![](/assets/blank.gif)
Popup.style.display="block";
![](/assets/blank.gif)
//设置窗体的X,Y轴的坐标
![](/assets/blank.gif)
Popup.style.left = x;
![](/assets/blank.gif)
Popup.style.top = y;
![](/assets/blank.gif)
document.getElementById("td1").innerText="缺勤人员及原因:"+sea;
![](/assets/blank.gif)
document.getElementById("td2").innerText="会议主要内容:"+comment;
![](/assets/blank.gif)
}
![](/assets/blank.gif)
//隐藏弹出窗体
![](/assets/blank.gif)
function Hide()
![](/assets/blank.gif)
{
![](/assets/blank.gif)
Popup.style.display="none";
![](/assets/blank.gif)
}
![](/assets/blank.gif)
数据绑定事件
![](/assets/blank.gif)
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
![](/assets/blank.gif)
{
![](/assets/blank.gif)
e.Item.Attributes.Add("onmouseover", "this.oldcolor=this.style.backgroundColor;this.style.backgroundColor='#C8F7FF';");
![](/assets/blank.gif)
e.Item.Attributes.Add("onmousemove", "Show('"+dtab.Rows[e.Item.ItemIndex+(DataGrid1.CurrentPageIndex*DataGrid1.PageSize)]["TeamMeet_AbsentName"].ToString()+"','"
![](/assets/blank.gif)
+dtab.Rows[e.Item.ItemIndex+(DataGrid1.CurrentPageIndex*DataGrid1.PageSize)]["TeamMeet_Content"].ToString()+"');");
![](/assets/blank.gif)
e.Item.Attributes.Add("onmouseout",
![](/assets/blank.gif)
"this.style.backgroundColor=this.oldcolor;Hide();");
![](/assets/blank.gif)
}
![](/assets/blank.gif)
}
![](/assets/blank.gif)
Popup是层
![](/assets/blank.gif)
td1,td2是层里一个table的单元格
本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2006/02/12/329281.html,如需转载请自行联系原作者