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 = 0; i < str.Length; i++)
                {
                    selections += "<Selection>(" + (char)(65+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 = 0;
            foreach (XmlNode node in root)
            {
                if (node.Name == "Selection")
                {
                    selections.Add(node.InnerText.Substring(3));//每个选项格式为,例如:(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 + ",") > -1) ids = ids.replace(Id + ",", "");
                else if (ids.indexOf("," + Id, "") > -1) 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>

转载于:https://www.cnblogs.com/D-H-Y/p/3346383.html

★: [D--目录指令 F--文件指令 A--混杂] ★: 指令名 类别 描述 ☆: /ext F 修改文件扩展名 ☆: /extA F 递归子目录修改文件扩展名 ☆: /real F 修改文件真实名 ☆: /realA F 递归子目录修改文件真实名 ☆: /name F 修改文件全名 ☆: /nameA F 递归子目录修改文件全名 ☆: /move F 移动文件 ☆: /moveA F 递归子目录移动文件 ☆: /extractByA F 提取指定属性的文件 ☆: /extractByAA F 递归子目录提取指定属性的文件 ☆: /extractByT F 提取指定类型的文件 ☆: /extractByTA F 递归子目录提取指定类型的文件 ☆: /copyFromByA F 复制指定属性的文件 ☆: /copyFromByAA F 递归子目录复制指定属性的文件 ☆: /copyFromByT F 复制指定类型的文件 ☆: /copyFromByTA F 递归子目录复制指定类型的文件 ☆: /copyDir D 复制目录结构 ☆: /createFile F 创建指定数目的文件 ☆: /createDir D 提取指定数目的目录 ☆: /copyTo F 复制文件 ☆: /copyToA F 递归子目录复制文件 ☆: /copyToSubDir A 复制文件到子目录 ☆: /copyToSubDirA A 递归子目录复制文件到子目录 ☆: /dirName D 修改目录名 ☆: /dirNameA D 递归子目录修改目录名 ☆: /caseExt F 改变文件扩展名大小写 ☆: /caseExtA F 递归子目录改变文件扩展名大小写 ☆: /caseReal F 改变文件真实名大小写 ☆: /caseRealA F 递归子目录改变文件真实名大小写 ☆: /caseName F 改变文件全名大小写 ☆: /caseNameA F 递归子目录改变文件全名大小写 ☆: /caseDirName D 改变目录名大小写 ☆: /caseDirNameA D 递归子目录改变目录名大小写 ☆: /writeFilesToTxt F 将目录中的子文件列表写入文件,便于之后修改文件名 ☆: /nameFromFile F 根据文件中列出的文件列表修改当前目录中的文件名 ☆: /nameFromDir F 根据指定目录的文件列表修改当前目录中的文件名 ☆: /moveAvgToSubDir F 将指定目录的所有子文件平均的分配到当前的子目录中 ☆: /? A 显示帮助信息 ☆更详细指令信息,请输入具体指令并Enter查看.........
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值