
你可以切换到源码试图,手动添加。步骤如下:
1.切换到源码视图
2.找到你要修改的控件
3.在标签内输入 runat="server"。
ps:看截图
随着微软 NET的流行 ASP NET越来越为广大开发人员所接受 作为ASP NET的开发人员 我们不仅需要掌握其基本的原理 更要多多实践 从实践中获取真正的开发本领 在我们的实际开发中 往往基本的原理满足不了开发需求 我们更多的要积累一些开发技巧 本文就向大家介绍一些实用技巧 希望对大家的开发有所裨益
~ 的用法
一般的情况下 我们是使用 / / 这样的相对路径来确定和规划我们的资源(比如图片 资源文件) 但这种方式下在我们部署应用的时候 可能会出错 另外对于 ascx的控件中如果包含了一个图片 而这个控件被我们在不同层次的两个目录的aspx文件分别引用时 问题就会出现了
~/image/about bmp 是一种非常好的方法 它以Web应用程序的根目录为起始点 这样使得比你使用 /image/about bmp这样的方式要更加灵活和方便 有一点不好 是这种方式是在ASP NET运行时动态解析的 所以在IDE设计模式中 你可能不能预览它
在刷新和提交页面后 保存你的页面滚动条的位置
经常有这样的情况 我们需要用户提交一个表单 但是表单中有超过 +个?控件或文本框要填写 也就是说用户需要拉动IE的滚动条才能够填得完 那么假如用户正在可见IE范围的 / 处 选择了一个组合框的值 很不幸组合框是服务器端的 那么也就意味着页面会提交一次 而当用户再看见刷新过的页面时 页面确定在 / 的地方也就是显示在页面最开始的地方 用户只有拖动鼠标 然后接着刚刚的地方再填写剩下的 个控件 很不幸 个控件又需要他选择一下?
用下面的方法可以很快地确定和记住你提交前的位置
网上的Old Dog Learns New Tricks也有一个类似的例子Maintain Scroll Position in any Page Element 不过他使用了Web Behavior这意味着你需要使用一个 htc文?lt/P>
Private Sub RetainScrollPosition()
Dim saveScrollPosition As New StringBuilderDim setScrollPosition As New StringBuilder
RegisterHiddenField( __SCROLLPOS )saveScrollPosition Append( <script language= javascript > )saveScrollPosition Append( function saveScrollPosition() { )saveScrollPosition Append( document forms[ ] __SCROLLPOS value = thebody scrollTop)saveScrollPosition Append( } )saveScrollPosition Append( thebody onscroll=saveScrollPosition)saveScrollPosition Append( </script> )
RegisterStartupScript( saveScroll saveScrollPosition ToString())
If (Page IsPostBack = True) Then
setScrollPosition Append( <script language= javascript > )setScrollPosition Append( function setScrollPosition() { )setScrollPosition Append( thebody scrollTop = &Request( __SCROLLPOS ) &)setScrollPosition Append( } )setScrollPosition Append( thebody onload=setScrollPosition)setScrollPosition Append( </script> )RegisterStartupScript( setScroll setScrollPosition ToString())
End If
End Sub
Private Sub Page_Load(ByVal sender As System Object ByVal e As System EventArgs) Handles MyBase LoadRetainScrollPosition()End Sub
DataList使用不同风格的模板
这招也非常实用 你可以制作两个不同的模板或表现形式 分别以 ascx控件的形式保存 运行时根据某个条件动态的选择使用其中的一个模板 另外ScottGu认为ItemDataBound方法也可以定制你显示的表现 比如加亮某个元素或是加一个促销广告图等等
Dim theme As Stringtheme = DropDownList SelectedValue
DataList ItemTemplate = Page LoadTemplate(theme &ascx ) CoolDataList DataSource = DSDataList DataBind()
设置服务器端控件的焦点
Private Sub SetFocus(ByVal controlToFocus As Control)Dim scriptFunction As New StringBuilderDim scriptClientId As String
scriptClientId = controlToFocus ClientIDscriptFunction Append( <script language= javascript > )scriptFunction Append( document getElementById( &scriptClientId &) focus())scriptFunction Append( </script> )RegisterStartupScript( focus scriptFunction ToString())End Sub
Private Sub Page_Load(ByVal sender As System Object ByVal e As System EventArgs) Handles MyBase LoadIf (Page IsPostBack = False) ThenSetFocus(TextBox )End IfEnd Sub
lishixinzhi/Article/program/net/201311/15143
Controller( )
虽然抽象类中定义了一个表示当前HttpResponse的属性Response 但是当BeginExecute方法执行的时候该属性尚未初始化 所以上面代码中使用的Response属性是我们自行定义的 运行该程序后会在浏览器中呈现出如图 所示的输出结果 从输出方法的调用顺序中不难看出在默认的情况下Controller是以异步的方式执行的 (S )
图 Controller在默认情况下的异步执行方式
现在按照如下的方式重写虚属性DisableAsyncSupport 使它直接返回True以关闭对Controller异步执行的支持
public class HomeController : Controller
{
//其他成员
protected override bool DisableAsyncSupport
{
get{return true}
}
}
再次执行我们的程序将会得到如图 所示的输出结果 可以看出由于HomeController间接地实现了IAsyncController接口 Controller的执行总是以调用BeginExecute/EndExecute方法的方式来执行 但是由于DisableAsyncSupport属性被设置为True BeginExecute方法内部会以同步的方式调用Execute/ExecuteCore方法 (S )
图 Controller在DisableAsyncSupport
属性为True的情况下的同步执行方式
ASP NET MVC应用编程接口中还定义了一个System Web Mvc AsyncController类型 从名称上看 AsyncController是一个基于异步的Controller 但是这里的异步并不是指Controller的异步执行 而是Action方法的异步执行 从如下的代码片段中可以看出 这个直接继承自抽象类Controller的AsyncController是一个 空 类型(没有额外定义和重写基类的类型成员) 在上一个版本中 以XxxAsync/XxxCompleted形式定义的异步Action方法均定义在继承自AsyncController的Controller类型中 考虑到向后兼容性 AsyncController在新的版本中保留下来
public abstract class AsyncController : Controller
{}
只有以传统方式(XxxAsync/XxxCompleted)定义的异步Action方法才需要定义在AsyncController中 ASP NET MVC 提供了新的异步Action方法定义方式 使我们可以通过一个返回类型为Task的方法来定义以异步方式执行的Action 这样的Action方法不需要定义在AsyncController中
返回目录 ASP NET MVC 框架揭秘
编辑推荐
ASP NET开发培训视频教程
Microsoft NET框架程序设计视频教程
Java程序性能优化 让你的Java程序更快 更稳定
lishixinzhi/Article/program/net/201311/16099
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)