GRIDVIEW一直没用过.现在把它的代码放在这里. 以备不时之需
GridLines = " None " OnPageIndexChanging = " GridView1_PageIndexChanging " PageSize = " 5 " AutoGenerateColumns = " false " OnRowCancelingEdit = " GridView1_RowCancelingEdit " OnRowDeleting = " GridView1_RowDeleting " OnRowEditing = " GridView1_RowEditing " OnRowUpdating = " GridView1_RowUpdating " >
< Columns >
< asp:BoundField DataField = " u_id " HeaderText = " 用户ID " ReadOnly = " True " />
< asp:BoundField DataField = " u_name " HeaderText = " 用户名 " />
< asp:BoundField DataField = " u_age " HeaderText = " 用户年龄 " />
< asp:BoundField DataField = " u_sex " HeaderText = " 用户性别 " />
< asp:BoundField DataField = " u_phone " HeaderText = " 用户电话 " />
< asp:BoundField DataField = " u_email " HeaderText = " 用户Email " />
< asp:BoundField DataField = " u_address " HeaderText = " 用户地址 " />
< asp:CommandField HeaderText = " 选择 " ShowSelectButton = " true " />
< asp:CommandField HeaderText = " 删除 " ShowDeleteButton = " true " />
< asp:CommandField HeaderText = " 编辑 " ShowEditButton = " true " />
</ Columns >
< FooterStyle BackColor = " #990000 " Font - Bold = " True " ForeColor = " White " />
< RowStyle BackColor = " #FFFBD6 " ForeColor = " #333333 " />
< SelectedRowStyle BackColor = " #FFCC66 " Font - Bold = " True " ForeColor = " Navy " />
< PagerStyle BackColor = " #FFCC66 " ForeColor = " #333333 " HorizontalAlign = " Center " />
< HeaderStyle BackColor = " #990000 " Font - Bold = " True " ForeColor = " Red " />
< AlternatingRowStyle BackColor = " White " />
</ asp:GridView >
--------------------------------------------------------------
protected void GridView1_RowDeleting( object sender, GridViewDeleteEventArgs e)
... {
string sqlstr2 = "delete from Users where u_id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
SqlConnection con = new SqlConnection(str);
SqlCommand cmd = new SqlCommand(sqlstr2,con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Databinds();
}
// 更新的功能
protected void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
... {
SqlConnection con = new SqlConnection(str);
string sqlstr = "update Users set u_name='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',u_age='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',u_sex='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "',u_phone='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() + "',u_email='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim() + "',u_address='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[6].Controls[0])).Text.ToString().Trim() + "'where u_id='"
+GridView1.DataKeys[e.RowIndex].Value.ToString()+"'";
SqlCommand cmd = new SqlCommand(sqlstr,con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
GridView1.EditIndex = -1;
Databinds();
}
// 编辑的功能
protected void GridView1_RowEditing( object sender, GridViewEditEventArgs e)
... {
GridView1.EditIndex = e.NewEditIndex;
Databinds();
}
// 退出编辑
protected void GridView1_RowCancelingEdit( object sender, GridViewCancelEditEventArgs e)
... {
GridView1.EditIndex = -1;
Databinds();
}
这里是在母版页里做验证时要用到的. 必须写在INIT事件中.,因为母版页的Load在子页之后
protected override void OnInit(EventArgs e)
{
//--添加验证代码段..
base.OnInit (e);
}
母版页中直接写就OK了.
GRID中再次寻找指定的控件.现在第一次看到有在TABLE中可以用GETELEMENTBYID之类
的用法.
使用JS遍历GridView里的TextBox,并判断.提交前调用JS方法
这个方法得好好想想, 在一个TABLE中再寻找另外一个东东
function onClientClick()
... {
var inputs = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input");
for(var i=0; i <inputs.length; i++)
...{
if(inputs[i].type=="text")
...{
inputs[i].value ... //这是TextBox的Text值,根据你的情况进行验证
//....
}
}
}
</ script >
这里写一个可以发送附件的邮件类.
string CcTos = CcTo.Text.Trim(); // 抄送人
string [] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos, " , " ); // 总收件人
string FromMail = " ustbwuyi1@163.com " ; // 发件人
string Title = " 你好 " ; // 邮件主题
string Body = " 附件里重要文档,请查收! " ; // 邮件主体
string ShowName = " ustbwuyi " ; // 显示名字
if (SendTos != "" || CcTos != "" )
... {
//用户名(取发送邮箱的@前面的部分,即ustbwuyi1
string MailUserName=FromMail.Substring(0,FromMail.IndexOf("@"));
//密码
string MailPassword="ustbwuyi";
System.Web.Mail.MailMessage mailmessage=new MailMessage();
mailmessage.From=FromMail;
mailmessage.Subject=Title;
mailmessage.Body=Body;
//添加附件
ArrayList FileNames;
//如果存在附件
if(FileNames.Count>=1)
...{
//添加附件
string Filename;
for(int k=0;k<FileNames.Count;k++)
...{
Filename=FileNames[k].ToString();
mailmessage.Attachments.Add(new MailAttachment(Filename));
}
}
}
mailmessage.Fields.Add( " http://schemas.microsoft.com/cdo/configuration/smtpauthenticate " , 1 );
mailmessage.Fields.Add( " http://schemas.microsoft.com/cdo/configuration/sendusername " ,MailUserName);
mailmessage.Fields.Add( " http://schemas.microsoft.com/cdo/configuration/sendpassword " ,MailPassword);
// 向收件人和抄送人循环发送
for ( int j = 0 ;j < Receiver.Length;j ++ )
... {
mailmessage.To=Receiver[j].ToString();
System.Web.Mail.SmtpMail.SmtpServer="smtp.163.com";
try
...{
System.Web.Mail.SmtpMail.Send(mailmessage);
}
catch(Exception ex)
...{
Response.Write("<script language='javascript'>alert('邮件发送失败,请您和ustbwuyi联系(QQ:108556024)!')</script>");
}
}
}
// 定义正则表达式
Regex reg = new Regex( @" ^.+.(jpg)|(gif)|(swf)|(jpeg)$ " );
// 用正则表达式来判定
if ( ! reg.Match(filename.ToLower()).Success)
... { base.Alert("上传的文件类型不符合要求!"); }
// 获取上传文件的名称
string name = DateTime.Now.ToString( " yyyyMMddhhmmss " ) + filename.Substring(filename.LastIndexOf( " / " ) + 1 );
// 要上传的服务器地址
string path = Server.MapPath( string .Format( " ~/AdFiles/ " )) + name;
try
... { this.file1.PostedFile.SaveAs(path);
}
catch (Exception ee)
... { base.Alert("图片上传失败,请与服务器空间商联系确认权限!");
}
其次是上传权限的设置,如果是在本地,需要对虚拟目录下该文件夹设置写入权限,在该目录上鼠标右键->属性->安全->everyone->写入即可。
如果是在服务器,除了需要有该文件夹的写入权限之外,还要在web.config里面设置一下。
在system.web节点里面添加如下代码:
<identity impersonate="true" userName="UserName" password="PassWord" />
发一些JS代码中的EVENT的属性和事件.以做个总结吧.
Event对象
1 Event对象的主要属性和方法
event代表事件的状态,专门负责对事件的处理,它的属性和方法能帮助我们完成很多和用户交互的操作,下面我们就来看看它的一些属性和方法。
type:事件的类型,就是HTML标签属性中,没有“on”前缀之后的字符串,例如“Click”就代表单击事件。
srcElement:事件源,就是发生事件的元素。比如<a οnclick="check()"></a> a这个链接是事件发生的源头,也就是该事件的srcElement。
button:声明了被按下的鼠标键,是一个整数。0代表没有按键,1代表鼠标左键,2代表鼠标右键,4代表鼠标的中间键,如果按下了多个鼠标键,就把这些值加在一起,所以3就代表左右键同时按下。
clientX/clientY:是指事件发生的时候,鼠标的横、纵坐标,返回的是整数,它们的值是相对于包容窗口的左上角生成的。
offsetX/offsetY:鼠标指针相对于源元素的位置,可以确定单击Image对象的哪个象素。
altKey,ctrlKey,shiftKey:顾名思义,这些属性是指鼠标事件发生的时候,是否同时按住了Alt、Ctrl或者Shift键,返回的是一个布尔值。
keyCode:返回keydown和keyup事件发生的时候,按键的代码以及keypress事件的Unicode字符。比如event.keyCode=13代表按下了回车键;
fromElement、toElement前者是指代mouseover事件移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素。
cancelBubble:一个布尔属性,把它设置为true的时候,将停止事件进一步起泡到包容层次的元素,它用于检测是否接受上层元素的事件的控制。true代表不被上层元素的事件控制,false代表允许被上层元素的事件控制。
returnValue:一个布尔值属性,设置为false的时候可以阻止浏览器执行默认的事件动作,相当于<a href=”#” οnclick=”ProcessMethod();return false;” />。
attachEvent()和detachEvent()方法:为制定DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。在attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素。
C#中一些转换的含数.
变量.ToString()
字符型转换 转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
System.Text.Encoding.Default.GetBytes(变量)
字码转换 转为比特码
如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);
然后可得到比特长度:
len = bytStr.Length;
这个主要是可以用来区分汉字还是英文用的。