分类目录归档:Asp.net

关于asp.net的文章

防止刷新重复提交数据解决方法的分析

在Asp.net开发中,浏览器刷新重复触发事件,导致重复提交的问题,下面有几种解决方法,我针对适用情况和利弊做一个简单的分析。


在Asp.net开发中,浏览器刷新重复触发事件,导致重复提交的问题,下面有几种解决方法,我针对适用情况和利弊做一个简单的分析。 方法一:检测数据表,看是否有相同的数据。这种方法对插入数据可能意义更大些,不过如何定义是相同的数据,是个麻烦的事。同时,如果不是插入数据,是删除呢,就不适用了。 方法二:提交后,转向一个过渡页面,然后再从过渡页面返回到当前的页面。这就要求在提交后,要把当前页面的URL地址作为参数传过去,同时不能保存缓存,否则“后退”带来不良后果。不过,如果是简单的删除,似乎转来转去太麻烦了。 方法三:用JavaScript捕捉F5事件。比如有如下代码: window.document.onkeydown = KeyStroke; function KeyStroke()   {    var key...... [阅读全文]

让GridView中CheckBox列支持FireFox

在Asp.net中,可以通过模板列,在Gridview中实现CheckBox列的实现,相关的代码并不复杂,你可以参考这里,我抽取的部分代码如下:


在Asp.net中,可以通过模板列,在Gridview中实现CheckBox列的实现,相关的代码并不复杂,你可以参考这里,我抽取的部分代码如下: <script language="javascript" type="text/javascript">    function selectAll(obj)    {         var...... [阅读全文]

WebResponse 跨域访问

前两天,一个朋友让我帮他写这样一个程序:在asp.net里面访问asp的页面,把数据提交对方的数据库后,根据返回的值(返回值为:OK或ERROR),如果为OK再把填入本地数据库。当时,想当然,觉得很简单,用js的xmlhttp ,如果根据response 的值是“OK”就执行提 …


前两天,一个朋友让我帮他写这样一个程序:在asp.net里面访问asp的页面,把数据提交对方的数据库后,根据返回的值(返回值为:OK或ERROR),如果为OK再把填入本地数据库。当时,想当然,觉得很简单,用js的xmlhttp ,如果根据response 的值是“OK”就执行提交本地数据库。很快写完发过去,让朋友试试,一试发现不行,后来一问,原来是跨域访问,我给忽略了,于是让朋友把asp改成web service,可朋友说程序是合作公司做的,只会asp,不会用web service ,狂晕ing。没办法,只能请出asp.net的 WebResponse了,很多网站采集程序都是用这个。第一版写完了,倒是可以跨域访问了,不过是乱码,调整有关编码的方式,终于可以了。这个应用虽小可是涉及的知识点不少: 1、xmlhttp 不能跨域提...... [阅读全文]

备忘:base 标签和ShowModalDialog 、showModelessDialog

在是用ShowModalDialog 弹出子窗体中在标签后,加入<base target="_self" />后,对于子窗体:


在是用ShowModalDialog 弹出子窗体中在标签后,加入<base target="_self" />后,对于子窗体: 1、POSTBACK后不会打开新窗体。 2、使用window.open()关闭窗体避免弹出另外一个同样的窗口。 ----------------------------------------------------- 附:showModalDialog()、showModelessDialog()方法使用详解 Javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等。 然而IE提供更多的方法支持对话框。如:   showModalDialog() (IE 4+ 支持)   showModelessDialog() (IE 5+ 支持) window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。 window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。 当我们用showModeles...... [阅读全文]

在gridview和datagrid里设置列宽

无论是gridview还是datagrid,在绑定数据后,列宽都不是固定的,在设计时是没法设定的,只能通过绑定是触发的事件来重新设定。参考http://msdn2.microsoft.com/zh-cn/library/ms178296(VS.80).aspx 的解释. gridview的代码: protected int widestData;


无论是gridview还是datagrid,在绑定数据后,列宽都不是固定的,在设计时是没法设定的,只能通过绑定是触发的事件来重新设定。参考http://msdn2.microsoft.com/zh-cn/library/ms178296(VS.80).aspx 的解释. gridview的代码: protected int widestData; protected...... [阅读全文]

在GRIDVIEW中合并单元格

///   <summary>       ///   合并GridView列中相同的行       ///   </summary>       ///   <param   name=”GridView1″>GridView对象</param>       ///   <param   name=”cellNum”>需要合并的列</param>     …


///   <summary>       ///   合并GridView列中相同的行       ///   </summary>       ///   <param   name="GridView1">GridView对象</param>       ///   <param   name="cellNum">需要合并的列</param>       public static void GroupRows(GridView GridView1, int cellNum)     {         int i = 0, rowSpanNum = 1;         while (i < GridView1.Rows.Count - 1)         {             GridViewRow gvr = GridView1.Rows[i];             for (++i; i < GridView1.Rows.Count; i++)             {                 GridViewRow gvrNext = GridView1.Rows[i];                 if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)                 {                     gvrNext.Cells[cellNum].Visible = false;                     rowSpanNum++;              ...... [阅读全文]

创建控件时出错/lm/w3svc/… 不是一个有效的iis应用程序” 的解决办法

创建控件时出错/lm/w3svc/… 不是一个有效的iis应用程序” 的解决办法 环境:vs2005,asp.net web 应用程序(项目),IIS作为发布服务器 导致原因:是项目的属性配置中,“服务器”的设置中与IIS中的虚拟目录不一致导致。 解决办法:按项目属性的中 …


创建控件时出错/lm/w3svc/... 不是一个有效的iis应用程序" 的解决办法 环境:vs2005,asp.net web 应用程序(项目),IIS作为发布服务器 导致原因:是项目的属性配置中,“服务器”的设置中与IIS中的虚拟目录不一致导致。 ...... [阅读全文]

遍历页面上的所有控件

/// <summary>         /// 采用递归的方法来遍历页面控件         /// </summary>         /// <param name=”parent”></param>         protected void ErgodicChildrenControls(Control parent)         {             …


/// <summary>         /// 采用递归的方法来遍历页面控件         /// </summary>         /// <param name="parent"></param>         protected void ErgodicChildrenControls(Control parent)         {                         foreach (Control c in parent.Controls)             {                //此处写有关控件的代码,例如                   //if (c is HtmlInputButton)                // {                //    HtmlInputButton btn = (HtmlInputButton)c;                //   if (c.id =="save")               // {               //      c.Visble=true;               //     }                // }                  if (c.Controls.Count > 0)       // 判断该控件是否有下属控件。       ...... [阅读全文]

如何不使用让menu控件不回发(postback)

写网站首页程序的导航,要用asp.net2.0 的下menu控件,因为绑定数据库十分方便,不过有个问题,就是我采用的iframe来跳转页面,不想整个首页都跳转,不过发现menu控件没有控制回发的属性,每单击就回发一次,挺麻烦的。后来想到一个曲折来实现的办法,在t …


写网站首页程序的导航,要用asp.net2.0 的下menu控件,因为绑定数据库十分方便,不过有个问题,就是我采用的iframe来跳转页面,不想整个首页都跳转,不过发现menu控件没有控制回发的属性,每单击就回发一次,挺麻烦的。后来想到一个曲折来实现的办法,在text属性上做文章,代码如下: index.aspx页面: ..... <script language=javascript> function OpenNewWindow(strUrl) {           document.all.UrlRedirect.src = strUrl;    } </script> <asp:Menu ID="Menuindex" runat="server" Orientation="Horizontal"   >               </asp:Menu> .... <iframe id ="UrlRedirect" name="UrlRedirect"></iframe> ..... index.aspx.cs ...... protected void Page_Load(object sender, EventArgs e)     {     ...... [阅读全文]

比较郁闷的textbox(asp.net 2.0)控件

今天转一个asp.net程序从vs2003到vs2005,老报错,postback后取不到textbox控件的改变的值,在vs2003下完全正常,在vs2005下就是不行,搞了一上午都不知为啥,于是上网查查,原来是textbox控件的readonly属性做的怪,真的郁闷.asp.net2.0 的这种改动让人 …


今天转一个asp.net程序从vs2003到vs2005,老报错,postback后取不到textbox控件的改变的值,在vs2003下完全正常,在vs2005下就是不行,搞了一上午都不知为啥,于是上网查查,原来是textbox控件的readonly属性做的怪,真的郁闷.asp.net2.0 的这种改动让人无法理解。解决方法详见如下: (http://blog.joycode.com/saucer/archive/2006/05/11/75741.aspx) 有时候,我们不希望用户直接编辑TextBox,而是希望通过客户端脚本的方式来设置内容,一般的做法是设置TextBox的属性ReadOnly为true。但在ASP.NET 2.0里有了变化,设置了ReadOnly为true的TextBox,在服务器端不能通过Text属性获取在客户端设置的新内容,在Reflector里比较一下LoadPostData的实现 .NET 1.1中, ...... [阅读全文]