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各种技巧的更多相关文章

  1. asp.net调试技巧

    一眨眼的功夫,自己已经学习asp.net的有一年的功夫了.虽然称不上什么大神,但是也有一点知识的积累.就写一片调试的入门文章给那些刚刚入门迷茫的童鞋们.希望你学习了我这篇文章能从迷茫的生活中找回编程的 ...

  2. 您可能不知道的ASP.Net小技巧

    <!-- 页码和简介 --> 1.  在提交页面之后,保持滚动条的位置 可以在page指令上加上MaintainScrollPositionOnPostback指令 <%@ Page ...

  3. asp.net 小技巧

    文字用一个label标签包起来,设置一个属性:for,其for的值要和复选框的id相同. <p> 1.通过点击文字,就选中复选框</p> <p>文字用一个label ...

  4. ASP.NET常用技巧方法代码断

    1. 打开新的窗口并传送参数:传送参数:response.write("<script>window.open('*.aspx?id="+this.DropDownLi ...

  5. asp.netGridView使用技巧

    GridView属性介绍 AutoGenerateColumns 如果为true表示自动生成数据列,如果为false关闭自动生成状态 何为自动生成数据列  比如这么一个表格: country name ...

  6. asp.net小技巧:保留password模式文本框textbox内的数据不丢失。

    在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号.圆点),就没有了! 一个可行的做法是 : prot ...

  7. ASP.NET应用技巧:非托管COM组件的使用

    众所周知,asp.net是基于通用语言运行库创建的,也就是所谓的托管执行环境.生成的代码称为托管代码.编译器能够从源代码的描述中产生元数据信息,而运行库又从元数据中获得托管代码的信息.而我们编写的组件 ...

  8. ASP.NET-JSON.NET技巧

    第一个技巧,字符串转JSON 单条的json数据可以使用JObject.Parse将对象转化成JObject对象,你可以接着使用JsonConvert.SerializeObject方法把这个对象序列 ...

  9. ASP.NET-AD开发技巧

    分享一篇很好的介绍AD属性的文章 AD图片插件 如何给AD添加图片 http://www.doc88.com/p-9542932844870.html AD过滤条件 重命名ou使用user.Renam ...

随机推荐

  1. 对zabbix监控磁盘性能的补充

    原因 在上一篇文章中,我写了完整的磁盘监控步骤,希望对大家有所帮助.但是这里还需要作出一点补充. 根据上一篇文章的内容,我是使用iostat命令不停的收集磁盘的信息,然后写入到/tmp/iostat_ ...

  2. [Cqoi2014]危桥 (两遍网络流)

    题目链接 #include <bits/stdc++.h> using namespace std; typedef long long ll; inline int read() { , ...

  3. linux中的三种时间

    mtime [修改时间] 文件/目录的修改时间 ctime  [属性修改时间] 文件目录的属性的修改时间 atime  [访问时间]文件/目录的访问时间 stat 123.txt   File: `1 ...

  4. 设计模式——抽象工厂(Abstract Factory)

    提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类. ——DP UML类图 模式说明 抽象工厂与工厂方法在定义上最明显的区别是“创建一系列相关或相互依赖对象的接口”,由此可以看出抽象工 ...

  5. 034 Search for a Range 搜索范围

    给定一个已经升序排序的整形数组,找出给定目标值的开始位置和结束位置.你的算法时间复杂度必须是 O(log n) 级别.如果在数组中找不到目标,返回 [-1, -1].例如:给出 [5, 7, 7, 8 ...

  6. Hive 环境的安装部署

    Hive在客户端上的安装部署 一.客户端准备: 到这我相信大家都已经打过三节点集群了,如果是的话则可以跳过一,直接进入二.如果不是则按流程来一遍! 1.克隆虚拟机,见我的博客:虚拟机克隆及网络配置 2 ...

  7. awk 分解行、字段

    1. 格式 格式: awk 'pattern {action} pattern {action}' filename 注:多个文件时,读取从左到右,读完第一个再读取第二个 pattern 1-/正则表 ...

  8. java CountDownLatch 等待多线程完成

    CountDownLatch允许一个或多个线程等待其他线程完成操作. package com.test; import java.util.concurrent.CountDownLatch; pub ...

  9. 在Controller方法执行之前进行捕获请求,进行类型的转换

    @ExceptionHandler(TypeMismatchException.class) public ModelAndView ParseException(Excetion ex,HttpSe ...

  10. Get和Post的请求

    get post请求 <form method="post","get", action="a.ashx"> <input ...