听说好像ASP.NET有这么一说:“代码和页码分离”。不知道是什么意思,难道是ASP.NET代码写在一个文件里,而页码写在一个文件里吗?那代码的文件后缀名是什么啊?
我现在刚开始学,刚刚碰到个“封装”的问题,想问一下,封装是不是就是上面所说的分离问题啊,那怎样才能去调用你自己写好的封装阿~~~ 谢谢~~~
我现在刚开始学,刚刚碰到个“封装”的问题,想问一下,封装是不是就是上面所说的分离问题啊,那怎样才能去调用你自己写好的封装阿~~~ 谢谢~~~
解决方案 »
- URL传中文参数,在aspx.cs页面,如果获取?
- showModalDialog 和 iframe 的问题
- 中文在加密/解密(孟大侠的作品)中出现乱码?
- DataGrid的怪问题??
- 新手上路,请教asp.net关于实现多文件上传问题??
- 如何获取一个帧里面的元素的绝对高度
- datalist的问题,在编程中设置了datalist的项模板之后,只显视三项,应该是5项
- 求:这样的SQL语句?
- 想让自己能快的学习和更好的掌握ASP。NET!
- 请问取一个字符串的几位,从第几位开始取是什么函数?
- 急~这个语句为何找不出数据?“select * from type where lj=''”找表中lj字段为空的记录。。是access数据,用lj<>''可找出不为空的记录
- Global.asax中的Session_End事件什么时候触发,我在客户端访问完后关闭IE时,这个事件怎么不会触发呢?
++++++++++++++++++++
"代码和页码分离",也就是所说的后置代码方式。就是把后台代码和前台代码分别写到一个单独的文件当中,后追分别为xxx.aspx.cs和xxx.aspx,并通过aspx文件中的类似以下的语句来关联:
<%@ Page language="c#" Codebehind="xxx.aspx.cs" AutoEventWireup="false" Inherits="命名空间.xxx" %>我现在刚开始学,刚刚碰到个“封装”的问题,想问一下,封装是不是就是上面所说的分离问题啊
++++++++++++++++++++
"封装"和后置代码是两个完全不同的概念。
代码放在.aspx.cs(vb)的文件里,而html放在.aspx里.当然,你也可以写在一起,代码部分写在<script></script>里(初学时都是这样的,但我还是觉得分开好.你用VS.NET开发就一目了然了.
至于封装,我的理解就是(不一定准确):转换类型,把一个类型转换成另一类型,与之对应的还有一个词我忘了叫啥了!就是再转换过来!
不知道这么说你能不能理解,还得请高手们指教,我也再学学!:)
不像ASP那样,所有的处理都在一个页面里
.aspx包含着(用C#).cs文件或(用vb.net).vb文件
这个.aspx与.cs 文件就是实现的分离
两者不在一个页面,但是他们是成对出现的
共同完成一个功能 向用户显示数据不知道这样说是不是明白封装不是所说的代码分离
当你的ASPX文件写完以后
你经过编译后,.CS文件就全部编译为.DLL文件,放入你写入的程序的BIN目录
你在显示你所写的页面的时候,所运行的一些程序,比如datagrid的编辑,那些功能就是在DLL文件内实现的
不像是ASP那样解释的
调用的话
你编译好的DLL文件的引用
会出现在你所看到地ASPX文件的目录头上
看一下ASPX页面的源码就会明白了这样说有一些明白了吗
那我的封装的代码是不是也写在上面的后台文件阿?那怎样去调用我的封装文件阿?
guopeng_028(.NET转入LIVE中) 所说的“.aspx.cs”和“.aspx.vb”文件要通过编译变成".dll"文件,那怎样去调用这些".aspx.cs"和".aspx.vb"文件,这样才能变成“.dll”文件~
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" debug="true" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.oledb" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="vb" runat="server">
sub page_load(obj as object,e as eventargs)
dim DSN as string,tSQL as string
DSN = "provider=microsoft.jet.oledb.4.0;data source=" & server.MapPath("ASP.NET网页数据库.mdb") & ";"
tSQL = "select * from UserDatas"
ShowResultSet(DSN,tSQL)
end sub
</script>
<!-- # include Virtual = "showresultset.inc" --></head>
<body>
</body>
</html>这是我的封装的一个方法的代码:
<script language="vb" runat="server">
sub ShowResultSet(byval DSN as string,byval tSQL as string)
dim lRet as boolean = true
dim OBJConn as OleDBConnection = new OleDBConnection(DSN)
OBJConn.open()
dim OBJCmd as OleDBCommand = new OleDBCommand(tSQL,OBJConn)
dim OBJReader as OleDBDataReader = OBJCmd.ExecuteReader()
do until not lRet
response.Write("<table border=1>")
response.Write("<tr>")
dim i as integer
for i = 0 to OBJReader.fieldcount()-1
response.Write("<td>" & OBJReader.getname(i) & "<td>")
next
response.Write("</tr>")
do while OBJReader.read()
response.Write("<tr>")
for i = 0 to OBJReader.fieldcount()-1
response.Write("<td>" & OBJReader.getvalue(i) & "</tr>")
next
response.Write("</tr>")
loop
response.Write("</table>")
lRet = OBJReader.nextresult()
loop
end sub
</script>请问封装的文件他的后缀名是不是".aspx.vb"
但我编译后就会提醒我,我自己写的方法"ShowResultSet()"未声明,这是怎么回事啊?
using System;
using System.IO;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Xml;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Security;
using System.Data.SqlClient;
using System.Configuration;
using System.Text.RegularExpressions;namespace SiteManage
{
public class XXX : System.Web.UI.Page{
你的代码
}
}
再用MS提供的编译工具编译一下,C#是CSC,VB忘了,在CMD里运行一下就编译好了,把编译好的DLL放进网站根目录下的BIN目录,没有就自己建一个,流程就是这样.
而页面代码调用就是第一句加上
<%@ Page Language="VB" ContentType="text/html" Inherits="SiteManage.XXX" %>