您的位置:首页 > 其它

发邮件 上传图像 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;

这个主要是可以用来区分汉字还是英文用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: