注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

汇总技巧

你快乐我快乐.... 汇集各类技巧,传播技巧,让我们共同熟练运用技巧..

 
 
 

日志

 
 

ASP.NET动态生成输入页面,以及生成控件的大小控制,输入数据的验证等  

2011-06-26 12:24:43|  分类: ◆ASP技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
ASP.NET动态生成输入页面,以及生成控件的大小控制,输入数据的验证等
有时根据选择不同的数据表,要生成不同的输入页面,这些数据表的结构各不相同,这时就要动态输出控件组成输入页面了,把这些表的结构放在一个专门的TYPE表里,如中英文字段名称,类型,大小,中英文表名称等。
 首先在页面上放置一个TABLE控件,放置一个DropDownList控件,DropDownList绑定数据库中要生成输入页面的表名称。
 生成页面代码如下:
cnn.open();
 int cellw;
 string type;
 string Sql ="select CHINANAME,HOW,TYPE from Type where OWNER ='" + DropDownList1.SelectedValue +"'";
 OleDbDataAdapter myDa =new OleDbDataAdapter();
 myDa.SelectCommand =new OleDbCommand(Sql,cnn);
 DataSet myDs =new DataSet();
 myDa.Fill(myDs,"Type");
 for(int i=0; imyDs.Tables[0].Rows.Count; i++)
 {
 TableRow newrow=new TableRow();
 TableCell newcell1=new TableCell();
 TableCell newcell2=new TableCell();
 TableCell newcell3=new TableCell();
 Label myLab =new Label();
 myLab.ID = "Labe" + i.ToString();
 myLab.Text = ""+myDs.Tables[0].Rows[i].ItemArray.GetValue(0).ToString()+":";
 myLab.EnableViewState =true;
 myLab.Width = 100;
 TextBox myTxt =new TextBox();
 myTxt.ID = "Txt" + i.ToString();
 myTxt.EnableViewState=true;
 type = myDs.Tables[0].Rows[i].ItemArray.GetValue(2).ToString();
 cellw = int.Parse(myDs.Tables[0].Rows[i].ItemArray.GetValue(1).ToString());
 if(cellw=50)
 {
 myTxt.Height = 24;
 myTxt.Width = 400;
 }
 if(cellw50cellw=100)
 {
 myTxt.Height = 50;
 myTxt.Width = 400;
 myTxt.TextMode = TextBoxMode.MultiLine;
 }
 if(cellw100cellw=200)
 {
 myTxt.Height = 60;
 myTxt.Width = 400;
 myTxt.TextMode = TextBoxMode.MultiLine;
 }
 if(cellw200cellw=500)
 {
 myTxt.Height = 80;
 myTxt.Width = 400;
 myTxt.TextMode = TextBoxMode.MultiLine;
 }
 newcell1.Controls.Add(myLab);
 newrow.Cells.Add(newcell1);
 newcell2.Controls.Add(myTxt);
 newrow.Cells.Add(newcell2);
 if(type=="decimal")
 {
 RegularExpressionValidator rev =new RegularExpressionValidator();
 rev.ID = "rev" + i.ToString();
 rev.ErrorMessage = "本行只能填写数字,请从新输入!" ;
 rev.ControlToValidate = "Txt"+i.ToString()+"";
 rev.ValidationExpression = 
">@"\d+(\.\d+)?$";
 rev.Width = 250;
 newcell3.Controls.Add(rev);
 newrow.Cells.Add(newcell3);
 }
 Table1.Rows.Add(newrow);
 }
 myDs.Clear();
 cnn.Close();
 把生成页面输入的数据保存到数据库:
 string strsql ="insert into "+bm+" (";
 try
 {
 for(int i=0; imyDs.Tables[0].Rows.Count; i++)
 {
 strsql = strsql + myDs.Tables[0].Rows[i].ItemArray.GetValue(1).ToString() +",";
 }
 strsql = strsql.Substring(0,strsql.Length-1) +") values (";
 for(int i=0; imyDs.Tables[0].Rows.Count; i++)
 {
 TextBox myTxt = (TextBox)Table1.FindControl("Txt"+i.ToString());
 strsql = strsql + "'" + myTxt.Text.Replace("'","'") + "',";
 }
 strsql = strsql.Substring(0,strsql.Length-1) +")";
 OleDbCommand myCommand=new OleDbCommand(strsql,cnn);
 myCommand.ExecuteNonQuery();
 }
 catc
 {
 }
  评论这张
 
相关小组: 品评互联网
阅读(340)| 评论(5)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017