ASP.NET各种技巧
1、动态添加文件框
前台页面关键部分:
<script type="text/javascript">
//添加一个选项
function AddFileCtrol() {
//新建一个Div元素
var innerDiv = document.createElement("div");
//添加到Div元素中
document.getElementById("dv1").appendChild(innerDiv);
//建立input元素
var fileCtrol = document.createElement("input");
//设置元素的名称
fileCtrol.name = "txtSelections";
//设置元素的类型
fileCtrol.type = "text";
//添加到span元素
innerDiv.appendChild(fileCtrol);
//建立input元素
var btnCtrol = document.createElement("input");
//设置元素的名称
btnCtrol.name = "btnDelete";
//设置元素的类型
btnCtrol.type = "button";
//设置元素的显示文字
btnCtrol.setAttribute("value", "删除")
//绑定函数到onclick事件
btnCtrol.onclick = function () { DeleteFileCtrol(this.parentNode) };
//添加到div元素
innerDiv.appendChild(btnCtrol);
}
//删除一个上传控件
function DeleteFileCtrol(obj) {
document.getElementById("dv1").removeChild(obj);
}
</script>
<table>
<tr>
<td align="left" width="50%">
<input id="btnAttch" type="button" value="添加选项" onclick="AddFileCtrol();" /><br />
<div id="dv1" runat="server">
</div>
</td>
</tr>
</table>
后台操作关键部分:
protected string CombineSelections()
{
string selections = "";
if (Request.Form.GetValues("txtSelections")!=null)
{
selections = "<Selections>";
string[] str = Request.Form.GetValues("txtSelections");//把每个动态文件框的内容保存在str中
for (int i = ; i < str.Length; i++)
{
selections += "<Selection>(" + (char)(+i)+ ")" + str[i] + "</Selection>";
}
selections += "</Selections>";
}
return selections;
}
1.1、把xml取出来并且动态生成前台文本框:
后台代码如下:
protected void SplitSelections(string Selections)
{
List<string> selections = new List<string>();//保存每个选项的实际内容
XmlDocument dom = new XmlDocument();
dom.LoadXml(Selections.Trim());//把striong类型的转换成xml类型
XmlElement root = dom.DocumentElement;//取xml文档的根节点
int i = ;
foreach (XmlNode node in root)
{
if (node.Name == "Selection")
{
selections.Add(node.InnerText.Substring());//每个选项格式为,例如:(A)今天下雨。所以从第3个起才是真正内容
//动态生成实际的选项,包括控件。
hfSelections.Value = hfSelections.Value + "<div><input type=\"text\" name=\"txtSelections\" value=\""+selections[i++]+"\"/><input type=\"button\" value=\"删除\" onclick=\"DeleteFileCtrol(this.parentNode)\"/></div>";
}
}
}
3、把数据库里面的数字转换成文字(利用枚举)
前台关键代码如下:
<td align="center">
<%#Enum.GetName(typeof(Utility.Product.ProductStatusTypeEnum),Eval("ProductStatusType"))%>
</td>
4.获取下拉框的值:
var type = document.getElementById("ddlType").options[document.getElementById("ddlType").selectedIndex].value;//获取下拉框的值
5.获取多个name相同的text的值
var Selections = document.getElementsByName("txtSelections");
for (var i = 0; i < Selections.length;i++)
{
hasSelections = 1;
if(Selections[i].value=="")
{
hasSelectionsValues = 0;
}
}
6.js做的保存事件的验证:
<asp:Button ID="btnSave" runat="server" Text="保存" Width="50px" Height="35px" OnClientClick="return showErr()" OnClick="btnSave_Click" />
7、在Repeater控件中调用带参数的JS(此参数与绑定的数据有关)函数:
前台:
function DeleteLab(Id) {
if (confirm('确认要删除此题库?')) {
var ids = $("#hfIds").val();
if (ids.indexOf(Id + ",") > -) ids = ids.replace(Id + ",", "");
else if (ids.indexOf("," + Id, "") > -) ids = ids.replace("," + Id, "");
else ids = ids.replace(Id, "");
$("#hfIds").val(ids);
$("#btnRefresh").click();
}
return false;
}
<td align="center">
<asp:Button ID="btnDel" runat="server" Text="删 除" OnClientClick=<%# System.String.Format("return DeleteLab('{0}');", Eval("Id")) %> />
</td>
ASP.NET各种技巧的更多相关文章
- asp.net调试技巧
一眨眼的功夫,自己已经学习asp.net的有一年的功夫了.虽然称不上什么大神,但是也有一点知识的积累.就写一片调试的入门文章给那些刚刚入门迷茫的童鞋们.希望你学习了我这篇文章能从迷茫的生活中找回编程的 ...
- 您可能不知道的ASP.Net小技巧
<!-- 页码和简介 --> 1. 在提交页面之后,保持滚动条的位置 可以在page指令上加上MaintainScrollPositionOnPostback指令 <%@ Page ...
- asp.net 小技巧
文字用一个label标签包起来,设置一个属性:for,其for的值要和复选框的id相同. <p> 1.通过点击文字,就选中复选框</p> <p>文字用一个label ...
- ASP.NET常用技巧方法代码断
1. 打开新的窗口并传送参数:传送参数:response.write("<script>window.open('*.aspx?id="+this.DropDownLi ...
- asp.netGridView使用技巧
GridView属性介绍 AutoGenerateColumns 如果为true表示自动生成数据列,如果为false关闭自动生成状态 何为自动生成数据列 比如这么一个表格: country name ...
- asp.net小技巧:保留password模式文本框textbox内的数据不丢失。
在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号.圆点),就没有了! 一个可行的做法是 : prot ...
- ASP.NET应用技巧:非托管COM组件的使用
众所周知,asp.net是基于通用语言运行库创建的,也就是所谓的托管执行环境.生成的代码称为托管代码.编译器能够从源代码的描述中产生元数据信息,而运行库又从元数据中获得托管代码的信息.而我们编写的组件 ...
- ASP.NET-JSON.NET技巧
第一个技巧,字符串转JSON 单条的json数据可以使用JObject.Parse将对象转化成JObject对象,你可以接着使用JsonConvert.SerializeObject方法把这个对象序列 ...
- ASP.NET-AD开发技巧
分享一篇很好的介绍AD属性的文章 AD图片插件 如何给AD添加图片 http://www.doc88.com/p-9542932844870.html AD过滤条件 重命名ou使用user.Renam ...
随机推荐
- 当构造方法参数过多时使用builder模式
静态工厂和构造方法都有一个限制:它们不能很好地扩展到很多可选参数的情景.请考虑一个代表包装食品上的营养成分标签的例子.这些标签有几个必需的属性——每次建议的摄入量,每罐的份量和每份卡路里 ,以及超过 ...
- ldap第二天-yum安装LDAP + phpLDAPadmin
1.安装LDAP服务器和客户端,migrationtools工具包 yum install -y openldap-servers openldap-clients migrationtools 2. ...
- POJ1020 Anniversary Cake
题目来源:http://poj.org/problem?id=1020 题目大意:有一块边长为s的正方形大蛋糕,有n个客人,每个客人想分一块边长为si的正方形蛋糕.求这块大蛋糕能否恰好满足所有客人的需 ...
- Python网络爬虫(二)
Urllib库之解析链接 Urllib库里有一个parse这个模块,定义了处理URL的标准接口,实现 URL 各部分的抽取,合并以及链接转换.它支持如下协议的 URL 处理:file.ftp.goph ...
- jquery——选项卡
下面是闭包做选项卡: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 10g duplicate and 11g dupliacte db for standby
###################10g Creating a Physical Standby Database OASSTBY Make sure database is in archive ...
- shell命令学习
shell快速入门 http://www.jb51.net/article/28514.htm 1.http://www.cnblogs.com/zhutoujin/articles/4678743. ...
- Unity SceneManager 对场景的操作
用 SceneManager 之前要引用using UnityEngine.SceneManagement; 命名空间. 1.拿到当前场景的名字:SceneManager.GetActiveScene ...
- EasyTouch3.16 初步使用
- (转)linux正则表达式详解
linux正则表达式详解 http://blog.csdn.net/wuliowen/article/details/64131815 1:什么是正则表达式: 简单的说,正则表达式就是处理字符串的方法 ...