当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  DataGrid使用技巧(一)

 DataGrid使用技巧(一)

点击次数:21 次 发布日期:2008-11-26 11:12:26 作者:源代码网
源代码网推荐     
源代码网推荐  
源代码网推荐  -------如何屏蔽单元格输入
源代码网推荐  
源代码网推荐   有时候听有些朋友抱怨.NET的DataGrid不是很好用。就我个人的体会,DataGrid的功能非常强大,可以使我们随心所欲的完成各种各样的工作,可惜就是实现起来不够简单明了。我对平时经常碰到的一些问题积累了一些解决的方法,现在把它们总结一下供大家参考。
源代码网推荐  
源代码网推荐   比较经常碰到的一个问题是:我们希望DataGrid的某一列只能输入特定的文本,比如:不能输入数字。下面的例子说明如何实现这种功能。
源代码网推荐   新建一个Window应用程序,加入一个DataGrid和SqlConnection,连接SQL数据库NorthWind。
源代码网推荐  
源代码网推荐  
源代码网推荐  namespace WindowsApplication1
源代码网推荐  {
源代码网推荐  public class Form1 : System.Windows.Forms.Form
源代码网推荐  {
源代码网推荐   private myDataGrid dataGrid1;
源代码网推荐   private System.Data.SqlClient.SqlConnection sqlConnection1;
源代码网推荐   //加入全局变量oldValue,用它表示单元格原来的文本。
源代码网推荐   private string oldValue;
源代码网推荐  
源代码网推荐   private void Form1_Load(object sender, System.EventArgs e)
源代码网推荐   {
源代码网推荐   oldValue="";
源代码网推荐   SqlDataAdapter sda=new SqlDataAdapter("select LastName,FirstName from employees",this.sqlConnection1);
源代码网推荐   DataSet ds=new DataSet();
源代码网推荐   sda.Fill(ds,"employees");
源代码网推荐   DataGridTableStyle ats=new DataGridTableStyle();
源代码网推荐   ats.MappingName="employees";
源代码网推荐   DataGridColorColumn dcs1=new DataGridColorColumn();
源代码网推荐   dcs1.HeaderText="lastname";
源代码网推荐   ats.GridColumnStyles.Add(dcs1);
源代码网推荐   DataGridTextBoxColumn dcs2=new DataGridTextBoxColumn();
源代码网推荐   dcs2.HeaderText="firstname";
源代码网推荐   dcs2.MappingName="FirstName";
源代码网推荐   dcs2.TextBox.TextChanged+=new EventHandler(DataGridTextChanged);
源代码网推荐   dcs2.TextBox.Enter+=new EventHandler(DataGridTextBox_Enter);
源代码网推荐   ats.GridColumnStyles.Add(dcs2);
源代码网推荐   this.dataGrid1.TableStyles.Add(ats);
源代码网推荐   this.dataGrid1.DataSource=ds;
源代码网推荐   this.dataGrid1.DataMember="employees";
源代码网推荐   }
源代码网推荐  
源代码网推荐  
源代码网推荐   private void DataGridTextBox_Enter(object sender,EventArgs e)
源代码网推荐   {
源代码网推荐   //当某一单元格获得焦点时,记录单元格的文本
源代码网推荐   oldValue=((DataGridTextBoxColumn) this.dataGrid1.TableStyles[0].GridColumnStyles[1]).TextBox.Text;
源代码网推荐   }
源代码网推荐  
源代码网推荐  
源代码网推荐   private void DataGridTextChanged(object sender,EventArgs e)
源代码网推荐   {
源代码网推荐   int index=0;
源代码网推荐   string str=((DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[1]).TextBox.Text;
源代码网推荐   //当单元格的文本改变时,检验是否有非法字符
源代码网推荐   while(index<str.Length)
源代码网推荐   {
源代码网推荐   //如果发现数字,显示错误信息并将单元格还原为原内容
源代码网推荐   if (Char.IsDigit(str,index))
源代码网推荐   {
源代码网推荐   MessageBox.Show("不能输入数字,请重新输入");
源代码网推荐   ((DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[1]).TextBox.Text=oldValue;
源代码网推荐   return;
源代码网推荐   }
源代码网推荐   index++;
源代码网推荐   }
源代码网推荐  }
源代码网推荐  }
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华