开发者社区> 老朱教授> 正文

ASP.NET 常见问题 和 网页上加上百度搜索

简介:
+关注继续查看



本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2005/12/04/290288.html,如需转载请自行联系原作者

None.gif如何在类库中的类文件里使用Response,Request,Server,Session几种对象。我这里有如下方式,仅供参考: 
None.gif      首先我们要在类文件里引用using System.Web;
using System.Web.SesstionState;命名空间,然后是对这种对象的声明: 
None.gif       HttpSessionState Session; 
None.gif       HttpServerUtility Server; 
None.gif       HttpRequest Request; 
None.gif       HttpResponse Response; 
None.gif
None.gif最后我们可以在构造函数里做如下处理: 
None.gif      
try 
ExpandedBlockStart.gif      

InBlock.gif            Session 
= ((System.Web.UI.Page)parent).Session; 
InBlock.gif            Server 
= ((System.Web.UI.Page)parent).Server; 
InBlock.gif            Request 
= ((System.Web.UI.Page)parent).Request; 
InBlock.gif            Response 
= ((System.Web.UI.Page)parent).Response; 
ExpandedBlockEnd.gif      }
 
None.gif      
catch 
ExpandedBlockStart.gif      

InBlock.gif            Server 
= ((System.Web.UI.UserControl)parent).Server; 
InBlock.gif            Session 
= ((System.Web.UI.UserControl)parent).Session; 
InBlock.gif            Request 
= ((System.Web.UI.UserControl)parent).Request; 
InBlock.gif            Response 
= ((System.Web.UI.UserControl)parent).Response; 
ExpandedBlockEnd.gif      }
 
None.gif以上做完,你就可以在类库里直接使用这几种对象了。 

返回历史页面onclick="history.back();return false;"
在提交的时候过程很长,为了防止用户再次点击而且为了界面友好可以用一个层遮住所有按钮再显示个提示信息,等服务器端处理完成再导航到本页(location.href='地址')就可以:

<div id="doing" runat="server" style="Z-INDEX: 12000; LEFT: 0px; VISIBILITY: hidden; WIDTH: 100%;  POSITION: absolute; TOP: 300px; HEIGHT: 100%">
                
<table width="100%" height="100%">
                    
<tr align="center" valign="middle">
                        
<td>
                            
<table width="169" class="font3" height="62" bgcolor="#6699ff" style="FILTER: Alpha(Opacity=75); WIDTH: 169px; HEIGHT: 62px">
                                
<tr align="center" valign="middle">
                                    
<td>页面提交中,请等待dot.gifdot.gif<br>
                                        Please waitdot.gifdot.gif
                                    
</td>
                                
</tr>
                            
</table>
                        
</td>
                    
</tr>
                
</table>
            
</div>


pageload里面这么写:this.Button1.Attributes.Add("onclick","document.getElementById('doing').style.visibility='visible';"); 
,等操作结束重定向了后页面重新加载一次,这个层也就消失了。。。


Page.SmartNavigation 属性
获取或设置指示是否启用智能导航的值

如果启用智能导航,则为 true;否则为 false

备注

在大多数情况下不要在代码中设置该属性。在 .aspx 文件的 @ Page 指令中将 SmartNavigation 属性设置为 true。请求该页时,动态生成的类将设置该属性。

Internet Explorer 5.5 或更高版本浏览器请求页时(或稍后),智能导航将通过执行下列功能提高用户对该页的操作能力:

  • 消除导航导致的闪烁。
  • 从一页移动到另一页时保持滚动位置。
  • 保持导航之间的元素焦点。
  • 在浏览器的历史记录中只保留最后一页的状态。

智能导航最适用于需要频繁回发但是其可是内容在返回时不会发生显著更改的 ASP.NET 页。在决定是否将该属性设置为 true 时,请仔细考虑这一点。

None.gif[C#] 
None.gif
void Page_Load(Object sender, EventArgs e)
ExpandedBlockStart.gif
{
InBlock.gif   
this.SmartNavigation = true;
ExpandedBlockEnd.gif}

None.gif
void Button_Click(Object sender, EventArgs e)
ExpandedBlockStart.gif
{
InBlock.gif   Label1.Text
="<b>The value of 'SmartNavigation' property is </b>" + "'" + this.SmartNavigation + "'";
ExpandedBlockEnd.gif}

None.gif

它最外边还是有一个frameset。你可以注意到与ajax的区别就是窗口底下多了个一闪而过的蓝色进度条(我真希望ie能有办法去掉这个)。其实很简单,几秒钟搞定!就是把你的页面的属性 smartNavigation 设置为 true
1遇到的问题:
使用了验证控件,编译时提示“无法找到脚本库……”
解决方法:
由于更换了主目录路径,应将在wwwroot下的aspnet_client文件夹拷到新的目录下即可


 

2遇到的问题:
关于style中的alpha滤镜
解决方法:
滤镜说明: 
Alpha:设置透明层次.
滤镜:alpha 
语法
STYLE="filter:Alpha(Opacity=opacity,FinishOpacity=finishopacity,Style=style,StartX=startX,StartY=startY,FinishX=finishX,FinishY=finishY)" 
说明: 
Opacity:起始值,取值为0-100,0为透明,100为原图.

FinishOpacity:目标值.

Style123

StartX:任意值

StartY:任意值

例子1filter:Alpha(Opacity="0",FinishOpacity="40",Style="2")

例子2<div id="mymenu" style="filter:alpha(opacity=50);border:1px solid">(即半透明)

附常见滤镜:

stylecss设置 2005-5-5 11:54:18

语法:STYLE="filter:filtername(fparameter1,fparameter2...)}(Filtername为滤镜的名称,fparameter1fparameter2等是滤镜的参数)

 

滤镜说明:

Alpha:设置透明层次.

blur:创建高速度移动效果,即模糊效果.

Chroma:制作专用颜色透明.

DropShadow:创建对象的固定影子.

FlipH:创建水平镜像图片.

FlipV:创建垂直镜像图片.

glow:加光辉在附近对象的边外.

gray:把图片灰度化.

invert:反色.

light:创建光源在对象上.

mask:创建透明掩膜在对象上.

shadow:创建偏移固定影子.

wave:波纹效果.

Xray:使对象变的像被x光照射一样.

 

1.滤镜:alpha

语法:

STYLE="filter:Alpha(Opacity=opacity,FinishOpacity=finishopacity,Style=style,

StartX=startX,StartY=startY,FinishX=finishX,FinishY=finishY)"

说明:

Opacity:起始值,取值为0-100,0为透明,100为原图.

FinishOpacity:目标值.

Style123

StartX:任 ?

StartY:任意值

例子:filter:Alpha(Opacity="0",FinishOpacity="40",Style="2")

 

2.滤镜:blur

语法:

STYLE="filter:Blur(Add=add,Direction=direction,Strength=strength)"

说明:

Add:一般为1,或0.

Direction:角度,0-315度,步长为45.

Strength:效果增长的数值,一般5即可.

例子:filter:Blur(Add="1",Direction="45",Strength="5")

 

3.滤镜:chroma

语法:

STYLE="filter:Chroma(Color=color)"

说明:

color:#rrggbb格式,任意.

例子:filter:Chroma(Color="#FFFFFF")

 

4.滤镜:DropShadow

语法:

STYLE="filter:DropShadow(Color=color,OffX=offX,OffY=offY,Positive=positive)"

说明:

Color:#rrggbb格式,任意.

Offx:X轴偏离值.

Offy:Y轴偏离值.

Positive:10.

例子:filter:DropShadow(Color="#6699CC",OffX="5",OffY="5",Positive="1")

 

5.滤镜:FlipH

语法:

STYLE="filter:FlipH"

例子:filter:FlipH

 

6.滤镜:FlipV

语法:

STYLE="filter:FlipV"

例子:filter:FlipV

 

7.滤镜:Glow

语法:

STYLE="filter:Glow(Color=color,Strength=strength)"

说明:

Color:发光颜色.

Strength:强度(0-100)

例子:filter:Glow(Color="#6699CC",Strength="5")

 

8滤镜:Gray

语法:

STYLE="filter:Gray"

例子:filter:Gray

 

9.滤镜:Invert

语法:

STYLE="filter:Invert"

例子:filter:Invert

 

10.滤镜:Mask

语法:

STYLE="filter:Mask(Color=color)"

例子:filter:Mask(Color="#FFFFE0")

 

11.滤镜:Shadow

语法:

filter:Shadow(Color=color,Direction=direction)

说明:

Color:#rrggbb格式.

Direction:角度,0-315度,步长为45.

例子:filter:Shadow(Color="#6699CC",Direction="135")

 

12.滤镜:Wave

语法:

filter:Wave(Add=add,Freq=freq,LightStrength=strength,Phase=phase,Strength=strength)

说明:

Add:一般为1,或0.

Freq:变形值.

LightStrength:变形百分比.

Phase:角度变形百分比.

Strength:变形强度.

例子:filter:wave(Add="0",Phase="4",Freq="5",LightStrength="5",Strength="2")

 

13.滤镜:Xray

语法:

STYLE="filter:Xray"

例子:filter:Xray  

 

3遇到的问题:

关于ArrayListIenumerator

解决方法:

ArrayList a=new ArrayList();

              string s1="aaaaa";

              string s2="bbbbb";

              string s3="ccccc";

              int i1=1;

              int i2=2;

              int i3=3;

 

              a.Add(s1);

              a.Add(s2);

              a.Add(i1);

              a.Add(i2);   

              a.Add(i3);

              a.Add(s3);

 

              IEnumerator ie=a.GetEnumerator();

              while(ie.MoveNext())

              {

                   string s=ie.Current.ToString();

                   Response.Write(s+Environment.NewLine);

              }

(与直接对arraylist对象用下标访问或通过foreach访问有什么区别?)

 

4遇到的问题:

关于arraylist

解决方法:

. ArrayList 构造函数

 

1. public ArrayList(); 

    初始容量是新ArrayList的起始容量。ArrayList 的默认初始容量为16 如果添加到列表中的元素个数达到当前容量,则容量将自动增加一倍。

 

2. public ArrayList(ICollection);

    初始容量是新ArrayList 的起始容量。如果添加到列表中的元素个数达到当前容量,则容量将自动增加一倍。按照由ICollection IEnumerator 读取元素的顺序将这些元素复制到ArrayList 中。

 

3. public ArrayList(int);

    初始容量是新ArrayList 的起始容量。ArrayList 的默认初始容量为16。如果指定的初始容量为0,则使用默认的初始容量。如果添加到列表中的元素个数达到当前容量,则容量将自动增加一倍。因此,如果可以估计集合的大小,那么当指定初始容量后,将无需在向ArrayList 中添加元素时执行大量的大小调整操作。

 

. ArrayList 成员

 

1. 常用属性

Capacity:获取或设置ArrayList 可包含的元素数。

Count:获取 ArrayList中实际包含的元素数。

Item:获取或设置指定索引处的元素。在 C# 中,该属性为ArrayList类的索引器。

 

2.常用方法

Add:将对象添加到ArrayList的结尾处。

Clear:从ArrayList 中移除所有元素。

IndexOf:返回ArrayList 或它的一部分中某个值的第一个匹配项的从零开始的索引。

LastIndexOf:返回ArrayList或它的一部分中某个值的最后一个匹配项的从零开始的索引。

Insert:将元素插入ArrayList的指定索引处。

Remove:从ArrayList中移除特定对象的第一个匹配项。

RemoveAt:移除ArrayList的指定索引处的元素。

TrimToSize:将容量设置为ArrayList中元素的实际数量。

 

5遇到的问题:

关于动态修改html中的某些内容

解决方法:

例如,改变页面的title

1

                   <script language =javascript >

                            window.document.title =tl;

                   </script>

.cs中:

              string s="123456";

              Response.Write("<script language=javascript>var tl='"+ s +"'</script>");

 

2

                   <title><%=s%></title>

.cs中:

         public string s="123456";

使用protected修饰也行,但internal修饰则出错,???

 

3

                   <title><%=Method()%></title>

.cs中:

         public string Method()

         {

              return "123456";

         }

同二,使用internal修饰也不行???

 

6遇到的问题:

关于params关键字

解决方法:

         private void Page_Load(object sender, System.EventArgs e)

         {

              // 在此处放置用户代码以初始化页面

              string[] sArray=new string[3];

              sArray[0]="aaa";

              sArray[1]="bbb";

              sArray[2]="ccc";

 

              Method1(sArray);

//            Method1("aaa","bbb","ccc");      //error

 

              Method2(sArray);

              Method2("aaa","bbb","ccc");

 

         }

 

         private void Method1(string[] s)

         {

              string temp="";

              foreach(string e in s)

              {

                   temp+=e;

              }

              this.TextBox1.Text =temp;

         }

 

         private void Method2(params string[] s)

         {

              string temp="";

              foreach(string e in s)

              {

                   temp+=e;

              }

              this.TextBox2.Text =temp;

         }

 

7遇到的问题:

关于__doPostBack()方法?

解决方法:

页面一:

提供一个锚点:

<a onclick="javascript:window.open('WebForm2.aspx','_blank')">open webform2</a>

一个文本框,用于显示一些信息:

<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>

一个隐藏的服务器button

<asp:Button id="Button1" runat="server" Text="Button" Visible="False"></asp:Button>

Button的后台事件为:

private void Button1_Click(object sender, System.EventArgs e)

{

     this.TextBox1.Text ="has click...";

}

页面二:

添加一个服务器按钮,添加事件:

private void Button1_Click(object sender, System.EventArgs e)

{

     string s="<script language=javascript>";

     s+="window.opener.__doPostBack('Button1','');";

     s+="</script>";

 

     this.Page.RegisterClientScriptBlock("a",s);

}

此时,在页面二中无法成功地触发页面一中的__doPostBack()事件,是由于在没有某些特定控件的时候,html文件中并不会产生__doPostBack()函数的javascript代码,所以在页面二中点击按钮时会提示“对象不支持此方法”:

<script language="javascript">

<!--

     function __doPostBack(eventTarget, eventArgument)

{

         var theform;

         if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {

              theform = document.forms["Form1"];

         }

         else {

              theform = document.Form1;

         }

         theform.__EVENTTARGET.value = eventTarget.split("$").join(":");

         theform.__EVENTARGUMENT.value = eventArgument;

         theform.submit();

     }

// -->

</script>

要使用页面内容中产生以上代码,可以添加一个LinkButton控件(好像只有该控件可以??)

另外的方法是在Page_Load()加上下面方法:

this.Page.GetPostBackEventReference(Button1);

上面方法将触发产生__doPostBack()javascript代码,msdn中的解释是:

“获取对客户端脚本函数的引用,调用该函数将使用服务器发送回该页”

以上代码可以应用于在子窗口中修改数据,然后刷新父窗口的情况

另外,注意“__doPostBack()”,方法名中是两道下划线,并且区分大小写。

 

8遇到的问题:

关于.netsqlserver中的日期类型

解决方法:

例子:Northwind--employees--birthdate

this.TextBox1.Text =dr.GetDateTime(0).ToString();输出:1948-12-8 0:00:00

this.TextBox1.Text =dr[0].ToString();输出:1948-12-8 0:00:00

this.TextBox1.Text=dr.GetDateTime(0).ToShortDateString();输出:1948-12-8

this.TextBox1.Text=dr.GetDateTime(0).ToString("yyyy#mm#dd");输出:1948#00#08

  在装了vs2003以后 从新装了iis后需要注册asp.net 不然提示说不是asp.net
:\Documents and Settings\Administrator>C:\WINNT\Microsoft.NET\Framework\v1.1.43
2\aspnet_regiis -i
开始安装 ASP.NET (1.1.4322.0)。
已安装完 ASP.NET (1.1.4322.0)。

  9遇到的问题:

关于脚本的调试

解决方法:

1调整IE选项--高级--取消“禁止脚本调试”

2直接运行你将要调试的aspx页面

3当页面呈现完成时,回到vs.net中,调试--窗口--运行文档,窗口右侧将出现当前IE中的aspx页面的名称,双击它,此时页面的html源文件将显示在vs.net的窗口中,这样就可以在html文件中设置断点。

 

0遇到的问题:

关于存储过程的调试

解决方法:

在查询分析器中展开左侧的对象浏览器(按F8,或“工具”--“对象浏览器”打开),展开存储过程,选择要调试的存储过程,右键,调试/debug

如果存储过程存在输入参数,则输入测试参数值,即可进行调试界面,F11单步

None.gif<form action="http://www.baidu.com/baidu" target="_blank">
None.gif            
<div align="center">
None.gif                
<input name="tn" type="hidden" value="baidu"> <href="http://www.baidu.com/"><img src="http://img.baidu.com/search/img/baidulogo_clarity_80_29.gif" alt="Baidu" align="bottom"
None.gif                        border
="0"></a> <input type="text" name="word" size="30"> <input type="submit" value="百度搜索">
None.gif            
</div>
None.gif        
</form>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SAP Fiori应用的搜索问题
SAP Fiori应用的搜索问题
12 0
jsp文件的请求是如何被服务器的JSP容器转换成静态网页的
jsp文件的请求是如何被服务器的JSP容器转换成静态网页的
101 0
如何仅使用内部链接策略来提高搜索排名
如何仅使用内部链接策略来提高搜索排名 网站架构修改的三个例子,在数字营销中提供了大量的SEO收益。 链接,即使在网站内,也显示内容之间的关系。它们在页面之间传递价值和重要性。更重要的是,内部链接定义了您网站的结构。
1575 0
Fiori UI上my contact加了Dr. 后搜索不出数据的奇怪问题
Fiori UI上my contact加了Dr. 后搜索不出数据的奇怪问题
21 0
上传网页后遇到网页乱码问题
上传网页后,打开网站碰到了乱码问题: 把Linux的默认编码调整: 代码如下: #vi    /etc/sysconfig/i18n LANG="zh_CN.
1081 0
asp.net mvc razor布局页中a标签的href的跳转问题
笔者做了一个文件上传系统,文件上传后,保存在wwwroot目录的file文件夹中,并把该文件的路径保存到数据库中, 如这样的一个路径保存在数据库:   file/b775f487-0127-41e0-9df8-2a5f1624cd87.
1471 0
[转载]Lucene.Net 按类别统计搜索结果数
    如何按类别统计搜索结果数?是不是要循环一个个类别去查询出总数啊?    以Lucene.Net现在的API,只能这样做。
548 0
+关注
3546
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载