1.Ajax 请求Ashx处理程序
思路:原页面利用AJAX将需要处理的数据传值ASHX页面进行处理,将处理结果返回。在原页面显示(防止页面全刷新)
实例: 异步判断文本框的值不需重复。
代码:
<asp:TextBox ID="txtGrdName" runat="server" onblur="OK()" MaxLength="25"></asp:TextBox>
var msg = $("#txtGrdName").val().replace(/\s+/g, ""); 将文本框中的空格用空串代替
if (msg.length == 0) {
$("#showResult").text("请输入方案名称!");
return;
}
$("#showResult").empty();
$.ajax({
url: "../../AjaxResult/Program/AjaxProgramTest.ashx?ProgramName=" + encodeURI($("#txtGrdName").val()), 接收处理数值的页面链接 encodeURI():编码传汉字时防止乱码
datatype: "text",
success: function (res) { ASHX 传回的值
if ("该名称已存在!" === res) {
$("#showResult").text("方案名称重复!");
}
}
});
}
ASHX页面的后台代码:
context.Response.ContentType = "text/plain";
string strProgramName = context.Request["ProgramName"].ToString(); 获取请求页面传过来的值
context.Response.Write(""); 将需要返回的信息返回
2.点击linkButton在后台获取前台参数
应用实例:在Repeater中点击删除按钮,删除对应行的数据。
代码:
前台: <asp:LinkButton ID="lbtDel" runat="server" Text="删除" CausesValidation="False" OnClientClick="return confirm('确认删除?');" 点击时调用前台CLICK事件,弹出确认框。
CommandArgument='<%#Eval("cLevelTitleTypeID")%>' OnClick="lbtDel_Click" class=" op-del"> 利用CommandArgument将值传到后台
</asp:LinkButton>
后台: string strProId = Convert.ToString(((LinkButton)sender).CommandArgument); //获取前台传过来值
3有分页功能时,.跨页获取CHECKBOX
思路:用隐藏域保存每页的选中的CHECKBOX。具体不介绍。
4.获取Reapeater 中每行的控件的值。
实现: foreach (RepeaterItem item in this.rpData.Items) //遍历Repeater
{
//获得当前Repeater行的CHECKBOX
System.Web.UI.HtmlControls.HtmlInputCheckBox check = (System.Web.UI.HtmlControls.HtmlInputCheckBox)item.FindControl("iCheck");
HiddenField hfProId = (HiddenField)item.FindControl("hfProId"); //获取每行的控件
}
5 文件上传功能
思路: 利用服务器端控件
前台: <asp:FileUpload ID="iFile" runat="server" />
后台: /// <summary>
/// 用于上传文件
/// </summary>
/// <param name="inputFile">上传控件的ID</param>
/// <returns>上传后的文件名称(不包含路径)</returns>
private string getUpLaodName(FileUpload fileImg)
{
string strNewName = "";
//检查上传文件不为空
if (fileImg.PostedFile.ContentLength > 0) //单位为字节BYTE
{
//按日期建立图片文件夹
DirectoryInfo dirInfo;
string strSaveDir = Server.MapPath("/UpLodeFiles/HonorImgFile/"); //自己项目中的目录,适合于小数量的图片
dirInfo = new DirectoryInfo(strSaveDir);
if (!dirInfo.Exists)
{
System.IO.Directory.CreateDirectory(strSaveDir);
//设定上传文件的保存路径
string strName = fileImg.PostedFile.FileName;
//取得文件名(抱括路径)里最后一个"."的索引
int intExt = strName.LastIndexOf(".");
//取得文件扩展名
string strExt = strName.Substring(intExt);
strNewName = Guid.NewGuid().ToString() + strExt;
if (strExt == ".jpg" || strExt == ".jpeg" || strExt == ".gif" || strExt == ".bmp" || strExt == ".png" || strExt == ".JPG" || strExt == ".JPEG" || strExt == ".GIF" || strExt == ".BMP" || strExt == ".PNG")
{
//保存文件到你所要的目录.
//注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里"\"必须用"\\"代替
fileImg.PostedFile.SaveAs(Server.MapPath("/UpLodeFiles/HonorImgFile/" + strNewName));
}
else
{
this.ShowDialog("警告", "您上传的格式有误!", null);
return "";
}
}
else
{
//设定上传文件的保存路径
string strName = fileImg.PostedFile.FileName;
//取得文件名(抱括路径)里最后一个"."的索引
int intExt = strName.LastIndexOf(".");
//取得文件扩展名
string strExt = strName.Substring(intExt);
//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
DateTime datNow = DateTime.Now;
strNewName = Guid.NewGuid().ToString() + strExt;
if (strExt == ".jpg" || strExt == ".jpeg" || strExt == ".gif" || strExt == ".bmp" || strExt == ".png" || strExt == ".JPG" || strExt == ".JPEG" || strExt == ".GIF" || strExt == ".BMP" || strExt == ".PNG")
{
//保存文件到你所要的目录.
//注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里"\"必须用"\\"代替
fileImg.PostedFile.SaveAs(Server.MapPath("/UpLodeFiles/HonorImgFile/" + strNewName));
}
else
{
this.ShowDialog("警告", "您上传的格式有误!", null);
return "";
}
if (6144 < fileImg.PostedFile.ContentLength)
{
this.ShowDialog("警告", "上传图片不可以超过6K!", null);
return "";
}
}
}
return strNewName;
}