发邮件 上传图像 JS中的EVENT GRIDVIEW的简单应用 JS中一些寻找控件的用法
2008-03-28 23:28
567 查看
GRIDVIEW一直没用过.现在把它的代码放在这里. 以备不时之需
<asp:GridView ID="GridView1" runat="server" Height="144px" Width="768px" AllowPaging="True" CellPadding="4" ForeColor="#333333"
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中再寻找另外一个东东
<script type="text/javascript">
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 SendTos=SendTo.Text.Trim(); //发送人
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>");
}
}
}
string filename=this.file1.PostedFile.FileName;
//定义正则表达式
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 onclick="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=”#” onclick=”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;
这个主要是可以用来区分汉字还是英文用的。
<asp:GridView ID="GridView1" runat="server" Height="144px" Width="768px" AllowPaging="True" CellPadding="4" ForeColor="#333333"
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中再寻找另外一个东东
<script type="text/javascript">
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 SendTos=SendTo.Text.Trim(); //发送人
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>");
}
}
}
string filename=this.file1.PostedFile.FileName;
//定义正则表达式
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 onclick="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=”#” onclick=”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;
这个主要是可以用来区分汉字还是英文用的。
相关文章推荐
- 关于js中小问题与一些简单函数的用法
- 【jquery模仿net控件】初步GridView模型实现,及其简单应用
- 简单应用js操作asp.net控件
- 【jquery模仿net控件】初步GridView模型实现,及其简单应用
- JS实战应用 之 JS控制FileUpload控件上传的文件类型和清空控件选中的文件
- Jquery回顾一些input控件的简单用法
- cesiumjs的一些简单地图应用,主要包含cesium调用arcgis服务
- 计算机视觉中经常需要识别或者定位某些几何图形,比如直线、圆、椭圆,还有其他一些图形。检测直线的霍夫变换提供了在图像中寻找直线的一种算法,是最简单的一种情形,后来发展到检测圆、椭圆、还有一般图形的霍夫变
- UploadFile上传图片-【控件简单应用】
- ASP.NET文件上传控件——WebbUpload我下载了这个组件后做了一些修改并应用了ajax技术
- js回调函数和作用域的一些简单用法
- JS的一些简单实例用法
- 一些简单的js用法
- 报表控件DevExPress的一些用法记录
- js运算符的一些特殊应用
- Node.js+Web TWAIN,实现Web文档扫描和图像上传
- 原生JS实现一些简单的操作
- js 编写上传控件
- 如何简单的用DataSet读取XML 并把它绑定到控件(GridView、DataList)