asp.net js css 等开发中可能会用到的- 不断更新
2010-04-14 14:22
639 查看
一、用JQuery的Ajax加载XML并解析的注意事项
1、Content-Type
很多时候无法解析就是Content-Type的问题。如果本身就是XML文件,请跳过这一步。
动态生成的XML一定要将其设置为text/xml,否则默认就是text/html也就是普通的文本。 常见语言的Content-Type设置:
response.setHeader("ContentType","text/xml"); //jsp
response.ContentType= "text/xml"; //asp
header("Content-Type:text/xml"); //php
2、xml结构
XML一定要封闭的,很重要的!
3、解析
更多可以参考ibm文章:使用 jQuery 在浏览器中处理 XML
http://www.ibm.com/developerworks/cn/xml/x-feedjquery/
二、Asp.net后台绑定xml并进行分页
三、xml导入dataset分页
四、datagridview 绑定数组
<%# DataBinder.Eval(Container, "DataItem.ItemArray[1]", null)%>
以下为参考:
<@% DataBinder.Eval(Container.DataItem, "ColumnName") %>
<@% DataBinder.Eval(Container.DataItem, "ColumnName", null) %>
<@% DataBinder.Eval(Container, "DataItem.ColumnName", null) %>
<@% ((DataRowView)Container.DataItem)["ColumnName"] %>
<@% ((DataRowView)Container.DataItem).Row["ColumnName"] %>
更多:http://hi.baidu.com/dongtso/blog/item/d511be8f754ee0e9f01f3695.html
五: 导入excel到datasset的时候,应当注意去掉空格
当然,可以根据列名字过滤, srtSql = "SELECT " + strColumnName + " FROM [Sheet1$] where " + strColumnName + "<>'' ";如果没有列名字的话,估计只能采取以上方法了,默认的列名为f1,f2等
如果限制了条数,可以直接根据行列操作:“elect * from [sheet1$A2:C4]”
六用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
1、Content-Type
很多时候无法解析就是Content-Type的问题。如果本身就是XML文件,请跳过这一步。
动态生成的XML一定要将其设置为text/xml,否则默认就是text/html也就是普通的文本。 常见语言的Content-Type设置:
response.setHeader("ContentType","text/xml"); //jsp
response.ContentType= "text/xml"; //asp
header("Content-Type:text/xml"); //php
2、xml结构
XML一定要封闭的,很重要的!
<?xml version="1.0" encoding="UTF-8"?> <stulist> <student email="1"> <name>zhangsan</name> <id>1</id> </student> <student email="2"> <name>lisi</name> <id>2</id> </student> </stulist>
3、解析
$.ajax({ async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。 type: "GET", // 默认:GET 请求方式:[POST/GET] dataType: "xml", //默认["xml"/"html"] 返回数据类型:["xml" / "html" / "script" / "json" / "jsonp"] url: "HomePageData/FlashResRecommend.xml", // 默认当前地址,发送请求的地址 error: function(xml) { alert('加载数据出现错误'); }, // 请求失败时调用 timeout: 10000, // 设置请求超时时间 success: function(xml) { // 请求成功后回调函数 参数:服务器返回数据,数据格式.$(xml).find("student[email='1']").size();//可以获取属性为1的个数xml.documentElement.childNodes.length;//可以获取属性为1的个数 $(xml).find("News[Status='1']").each(function(i) {var Title = $(this).children("name").text(); //去对象的文本var email = $(this).attr("email");//取属性});}});
更多可以参考ibm文章:使用 jQuery 在浏览器中处理 XML
http://www.ibm.com/developerworks/cn/xml/x-feedjquery/
二、Asp.net后台绑定xml并进行分页
<asp:Repeater ID="rptResType2" runat="server" > <HeaderTemplate><div class="mycontent"> <div class="mycontent100"> </HeaderTemplate> <ItemTemplate> <div class="jiansje story"> <div style="width:100%;" class="title"><a target="_self" href="#" mce_href="#" style="font-size:1.20em ;" mce_style="font-size:1.20em ;"> <%#XPath("Field[@name='Title']", 0, "")%></a></div> <div class="sub-title" style="width:100%; "><span class="source" ><b><%#XPath("Field[@name='Year']", 0, "")%></b></span></div> <div class="body"><div class="snippet"><%#XPath("Field[@name='Content']", 0, "")%> </div></div><div class="r"></div></div> </ItemTemplate> <FooterTemplate> </div></div> </FooterTemplate> </asp:Repeater> /// <summary> /// 绑定数据 /// </summary> /// <param name="strResType">资源类型</param> /// <param name="strFileUrl">文件地址</param> public void BindData(string strResType, string strFileUrl) { //绑定推荐 this.XmlDataSource1.DataFile = strFileUrl; //--------------- //获取总数分页 //绑定翻页 --------------- int nRecordCount= this.XmlDataSource1.GetXmlDocument().GetElementsByTagName("Record").Count;//总数 int nPageSize = 20;//每页显示 int nItemCount=6; // 页码翻页显示数 if (null!=ViewData["CurPage"]) nCurPage = Convert.ToInt32(ViewData["CurPage"]); if (nCurPage < 1) nCurPage = 1; int StatPage = (nCurPage - 1) * nPageSize; int EndPage = StatPage + nPageSize; ArticleTransformer trans = new ArticleTransformer(); this.XmlDSPage.Data = trans.GetPageControl(nRecordCount, nPageSize, nItemCount, nCurPage); this.XmlDSPage.XPath = "/Result/pagecontrol/page"; this.rptPage.DataSource = this.XmlDSPage; this.rptPage.DataBind(); //如果页面的数量为1,隐藏 if (this.rptPage.Items.Count < 2) rptPage.Visible = false; //--------------- //绑定翻页 ------------------------ //绑定记录 if ("1".Equals(strResType)) { } else { } this.XmlDataSource1.XPath = "/Result/Records/Record[ " + StatPage + " <position() and position()<=" + EndPage + "]"; string strRepeater = "rptResType" + strResType; try { //得到当前要显示的 repeater Repeater rpt = (Repeater)this.FindControl(strRepeater); this.rptItems.HeaderTemplate = rpt.HeaderTemplate; this.rptItems.ItemTemplate = rpt.ItemTemplate; this.rptItems.FooterTemplate = rpt.FooterTemplate; this.rptItems.DataSource = this.XmlDataSource1; this.rptItems.DataBind(); } catch (Exception exp) { Log log = new Log(); log.WriteLog("绑定个性化更多列表:" + exp.Message + strFileUrl); } }
三、xml导入dataset分页
string strKeyWord = string.Empty; string strExpr = "(Status='1' or Status='2') "; string strSort = "ID DESC"; if (Session["txtSearchWord"] != null) { strKeyWord = Session["txtSearchWord"].ToString(); if (!string.IsNullOrEmpty(strKeyWord)) strExpr = string.Format("{0} And (ResGroupName like '%{1}%' )", strExpr, strKeyWord); } // Response.Write(strExpr); //XmlDSList.DataFile = strXmlRoad; //XmlDSList.XPath = ("Subjects/Subject[@Status='1']"); DataSet objDataSet = new DataSet(); objDataSet.ReadXml(strXmlRoad); // Sort descending by column named CompanyName. // Use the Select method to find all rows matching the filter. DataRow[] foundRows = objDataSet.Tables[0].Select(strExpr, strSort, DataViewRowState.Added); //foreach (DataRow r in foundRows) //{ // foreach (DataColumn c in r.Table.Columns) // { // Response.Write(string.Format("/t {0}", r[c])); // } // Response.Write("<br>"); //}
四、datagridview 绑定数组
<%# DataBinder.Eval(Container, "DataItem.ItemArray[1]", null)%>
以下为参考:
<@% DataBinder.Eval(Container.DataItem, "ColumnName") %>
<@% DataBinder.Eval(Container.DataItem, "ColumnName", null) %>
<@% DataBinder.Eval(Container, "DataItem.ColumnName", null) %>
<@% ((DataRowView)Container.DataItem)["ColumnName"] %>
<@% ((DataRowView)Container.DataItem).Row["ColumnName"] %>
更多:http://hi.baidu.com/dongtso/blog/item/d511be8f754ee0e9f01f3695.html
五: 导入excel到datasset的时候,应当注意去掉空格
string strFilePath = "E://ProjectTest//chartest//aa.xlsx"; string strConn; if (strFilePath.ToLower().Contains(".xlsx")) strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=NO;IMEX=1;'", strFilePath); else strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'", strFilePath); OleDbConnection conn = new OleDbConnection(strConn); OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$] Where f1<>'' And f1 is no null ", strConn); DataSet myDataSet = new DataSet(); try { myCommand.Fill(myDataSet); } catch (Exception e) { string strError = e.Message; return null; }
当然,可以根据列名字过滤, srtSql = "SELECT " + strColumnName + " FROM [Sheet1$] where " + strColumnName + "<>'' ";如果没有列名字的话,估计只能采取以上方法了,默认的列名为f1,f2等
如果限制了条数,可以直接根据行列操作:“elect * from [sheet1$A2:C4]”
六用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
2007-11-11 10:30 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"> 2.只能输入数字,能输小数点. <input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')"> <input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}"> 3.数字和小数点方法二 <input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}"> 4.只能输入字母和汉字 <input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers"> 5.只能输入英文字母和数字,不能输入中文 <input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')"> 6.只能输入数字和英文<font color="Red">chun</font> <input onKeyUp="value=value.replace(/[^\d|chun]/g,'')"> 7.小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号: <input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false"> 8.小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号: <input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
相关文章推荐
- Yui.Compressor高性能ASP.NET开发:自动压缩CSS、JS
- ASP.NET 4.0 Webform传统开发模式下如何压缩css, js
- ASP.NET 4.0 Webform传统开发模式下如何压缩css, js
- 清新空气---我的.net(C#)生涯知识总结 跨CSS,JS,JAVA,AJAX,WPF,WCF,LINQ,ASP.NET,Winform,Sqlserver,Mysql,EF,OOP,开发工具等
- ASP.NET Web 开发中的静态资源(JS、CSS、图片)版本控制
- 【转载】MVC巧用枚举做权限管理 | NET开发中你可能会用到的常用方法总结 |学习 ASP.NET MVC
- ASP.Net一键自动化更新代码、编译、合并dll、压缩js、css、混淆dll、zip打包、发布到测试环境的bat批处理
- 高性能ASP.NET开发:自动压缩CSS、JS
- ASP.NET 4.0 Webform传统开发模式下如何压缩css, js
- Yui.Compressor高性能ASP.NET开发:自动压缩CSS、JS防止Lambda的各种坑爹(一)
- 【转载】Yui.Compressor高性能ASP.NET开发:自动压缩CSS、JS
- 在ASP.NET MVC中,使用Bundle来打包压缩js和css
- ASP.NET MVC资源汇总(本文不断更新)
- asp.net mvc中用 BundleCollection压缩JS与CSS时,图片或js引用错误
- 如何在asp.net页面使用css和js
- Asp.Net之后台加载JS和CSS
- asp.net中Winform开发框架之数据即时更新的实现
- ASP.NET 2.0: 页面中链入的CSS、js文件带中文时需注意
- Asp.net 后台添加CSS、JS、Meta标签的方法
- Asp.net 后台添加CSS、JS、Meta标签的方法