




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开发Web应用程序,中国地质大学(武汉)杨之江yangzhijiang,内容,ASP.NET的开发环境配置编写ASP.NETWeb应用程序ASP.NET服务器端控件创建Web服务QprotectedSystem.Web.UI.WebControls.ButtonButton1;protectedSystem.Web.UI.WebControls.LabelLabel1;privatevoidPage_Load(objectsender,System.EventArgse)/在此处放置用户代码以初始化页面privatevoidInitializeComponent()this.Button1.Click+=newSystem.EventHandler(this.Button1_Click);this.Load+=newSystem.EventHandler(this.Page_Load);privatevoidButton1_Click(objectsender,System.EventArgse)inti=100;stringstr=Convert.ToString(i,2);Label1.Text=str;,2.3Web窗体,在Web窗体页中,用户界面编程分为两个不同的部分:可视控件和逻辑。视觉元素称作Web窗体“页”(page)。这种页由一个包含静态HTML和/或ASP.NET服务器控件的文件组成。Web窗体页用作要显示的静态文本和控件的容器。Web窗体页的逻辑由代码组成,开发者创建代码与窗体进行交互,编程逻辑位于与用户界面文件不同的文件中,该文件称作“代码隐藏”文件,用aspx.cs”作为扩展名,在代码隐藏文件中编写的逻辑使用C#来编写。,2.3Web窗体的事件响应,像在Windows窗体上使用控件一样,Web控件和HTML控件也有与它们相关的事件,可以为这些事件生成代码。每个控件都有它们自己的特殊事件,例如,按钮控件有Click事件,文本框有TextChanged事件。Web窗体事件和Windows窗体事件有一个重要的区别:Windows窗体的事件是在本地机进行处理的;与Web窗体事件相关的代码被存储在Web服务器上的的代码文件中,这意味着当运行在用户浏览器上的Web窗体中的事件被触发时,窗体不得不回叫Web服务器来处理它的事件。当事件被触发时,Web窗体页再次与Web服务器通信来处理这些代码。因此,过多地使用控件事件会造成频繁地访问服务器。,3ASP.NET服务器端控件,3.1Web服务器控件3.2HTML服务器控件3.3验证控件3.4用户控件,3ASP.NET服务器端控件,服务器端控件是ASP.NET编程的基础,编写Web页面很大程度上就是将控件拼凑起来,以使其协同工作。Web窗体总共可以加入4种控件,它们是:Web服务器控件,HTML服务器控件,验证控件和用户控件,3.1Web服务器控件,VisualStudio.NET提供了众多的Web服务器控件,这些控件都包含多种属性,更改这些属性可使控件具有不同的功能。控件的属性既可以在VisualStudio.NET的属性对话框中进行静态更改,也可以在程序运行时进行动态更改。,3.1Web服务器控件-文本框控件,TextBox控件文本框控件提供了向Web窗体输入信息的方法,可以将文本框的TextMode属性赋为SingLine、MultiLine和Password来改变它的行为模式,3.1Web服务器控件-文本框控件的公共属性,3.1Web服务器控件-文本框控件的公共方法,3.1Web服务器控件-按钮控件,VisualStudio.NET的工具箱中提供了3种按钮控件:普通按钮Button、显示超链接样式的按钮LinkButton和显示图像样式的ImageButton。按钮控件发生Click事件时会直接导致向服务器端提交。,3.1Web服务器控件-按钮控件公共属性,Button和LinkButton控件的公共属性,ImageButton控件的公共属性,3.1Web服务器控件-复选框和单选按钮控件,复选框控件(CheckBox、CheckBoxList)和单选按钮控件(RadioButton、RadioButtonList)复选框控件和单选按钮控件十分类似,它们都允许从多个选项中进行选择,不同的是复选框控件允许同时选择多项,而单选按钮控件每次只能选择一项。CheckBoxList控件和RadioButtonList控件可以单独使用,而CheckBox控件和RadioButton控件则需要多个一起使用。它们都可以和数据源进行绑定,不过比较起来使用CheckBoxList控件和RadioButtonList控件访问数据更为方便一些,3.1Web服务器控件-复选框和单选按钮控件,3.1Web服务器控件-复选框和单选按钮控件,对CheckBoxList控件和RadioButtonList控件来说,可以直接通过Items属性来设置显示项和标签。打开这些控件属性对话框中的Items项,将出现ListItem集合编辑器可以在左侧【成员】栏内添加显示项,右边的属性栏可以设置该项的属性。Selected属性表明该项是否被选定,Text属性的值将作为该项的显示标签,Value的值可以作为编程时的内部值使用,该值可与Text属性采用不同的值,3.1Web服务器控件-复选框和单选按钮控件,CheckBox和RadioButton控件的公共属性,3.1Web服务器控件-复选框和单选按钮控件,CheckBoxList和RadioButtonList控件的公共属性,3.1Web服务器控件-DropDownList控件和ListBox控件,DropDownList控件和ListBox控件都提供了选择特定项的功能,不同处在于DropDownList控件提供一个下拉列表框进行选择,而ListBox控件直接提供多个选项,而且还可同时选择ListBox控件中的多项与复选框控件和单选按钮相同,它们都可以通过属性对话框的Items项打开ListItem集合编辑器对显示项进行添加删除,它们也都具有数据源绑定功能,3.1Web服务器控件-DropDownList控件和ListBox控件,ListItem集合编辑器,3.1Web服务器控件-DropDownList控件公共属性,3.1Web服务器控件-ListBox控件公共属性,3.2HTML服务器控件,ASP.NET的Web窗体也支持HTML服务器控件,在工具箱的HTML子项就可以找到它们,你可能会发现HTML服务器控件和刚才介绍的Web服务器控件有些重复,它同样也具有按钮控件、文本框控件等,那它与Web控件有什么区别呢,什么时候应该用Web服务器控件什么时候应该用HTML服务器控件HTML服务器控件与Web服务器控件的区别浏览器都支持基本的HTML元素,而应用这些基本的HTML元素可以组合出复杂的元素,HTML服务器控件和基本的HTML元素是对应的。使用Web服务器控件时,从服务器方的角度来看根本不知道最终控件会在浏览器中用什么样的HTML元素显示出来,显示一个Web服务器控件可能需要组合多个HTML元素,也就是说浏览器显示什么样的HTML元素对服务端是透明的。HTML服务器控件提供了操纵浏览器HTML元素的机会。,3.2HTML服务器控件,【例】新建一个Web项目,将位置栏中的项目名改为TestHTML。从【工具箱】中的HTML栏内添加一个Button控件,切换到Web窗体的HTML对话框,将会显示aspx文件的内容,如以下代码所示:无标题页,3.2HTML服务器控件,该Button控件在aspx文件里直接对应着一个HTML元素,因此会不加处理地直接传给浏览器,其他的HTML控件也与此类似。也可以在服务器端处理HTML服务器控件的事件,不过要先使它们能在服务器端运行。在上面的例子的Web窗体的设计对话框中右击Button控件,从中选择【作为服务器控件运行在Button控件的左上方会出现一个小绿色箭头,它就表明该控件将作为服务器控件运行,这时在aspx文件里对应的行变成:,3.2HTML服务器控件,使HTML控件作为服务器控件运行,3.2HTML服务器控件,通过加入runat=“server”使它从简单的HTML元素变成了HTML服务器控件,这样就可以像Web服务器对它进行服务器端编程。在上面的设计对话框中双击Button控件将切换到代码编辑对话框,在Button1_ServerClick方法下填写如下代码:privatevoidButton1_ServerClick(objectsender,System.EventArgse)/改变按钮标签Button1.Value=Click;运行这个程序,单击Button按钮,页面刷新过后Button按钮的标签就变成了Click。该Button按钮的回发也是由客户端脚本程序产生的,可以使用上面介绍查看浏览器内容的方法来具体看一下实现过程,这些客户端脚本程序是Web服务器处理ASP.NET程序时产生的。现在就面临着如何在Web服务器控件和HTML服务器控件直接选择的问题,这里建议如果偏爱使用RAD编程模型的话最好使用Web服务器控件,如果想更好地控制浏览器的显示,与客户端脚本程序交互,那么就请用HTML服务器控件。,web服务器控件HTML服务器控件和HTML控件的区别(1),Html控件最常用,出现最早web服务器控件(ASP.NETServerControl)与WinForm开发相似HTML服务器控件(HTMLServerControl)向下兼容基于ASP系统的移植而推出的介于以上两者之间的权宜产物,web服务器控件HTML服务器控件和HTML控件的区别(2),Html控件的标签Html服务器控件的标签Html服务器控件其实就是Html控件的基础上加上runat=server所构成的控件Web服务器控件的标签Web服务器控件会根据情况在浏览器端产生一个或多个对应的Html标签,web服务器控件HTML服务器控件和HTML控件的区别(3),Html控件不能在服务器端控制,只能在浏览器端通过javascript等脚本语言操作Html服务器控件设定了runat=server属性后,页面对象会将该控件载入控制器,服务器端的代码就能对其进行控制Html服务器控件在页面执行完毕后会被转换成Html标注,然后当成字符串流发送到浏览器端,浏览器端的脚本能够进行操作。Web服务器控件的操作则是由页面把Form发回服务器,然后完全由服务器端代码处理,web服务器控件HTML服务器控件和HTML控件的区别(4),Html控件不能在服务器端控制,只能在浏览器端通过javascript等脚本语言操作Html服务器控件设定了runat=server属性后,页面对象会将该控件载入控制器,服务器端的代码就能对其进行控制Html服务器控件在页面执行完毕后会被转换成Html标注,然后当成字符串流发送到浏览器端,浏览器端的脚本能够进行操作。Web服务器控件的操作则是由页面把Form发回服务器,然后完全由服务器端代码处理,Web服务器控件、Html服务器控件和Html控件的优缺点,Html控件和Html服务器控件需要编码以保持浏览器兼容。Web服务器控件能够检测浏览器的兼容性,保持表现的一致Html服务器控件通过为Html控件添加runat=server以实现ASP程序的移植。将ASP程序移植成使用Web服务器控件的ASP.Net程序相当于重写新的应用Html控件和Html服务器控件是标准控件,能够用浏览器端脚本语言操作。使用Web服务器控件提供的对象模型,能够得到和WinForm类似的编程体验,而且无需再学习不同的脚本语言。Web服务器内部的代码并不开放,你无法获得比较直接的控制,Web服务器控件、Html服务器控件和Html控件小结,Html服务器控件作为一个过渡的实现,虽然能够兼顾浏览器端和服务器端,终究是一个奇怪的存在,尽量少使用为妙从微软的角度,良好封装的Web服务器控件提供了大量的便利,同时WebForm和WinForm开发模式的差异使得相互的经验能够互通,当然是多使用Web服务器控件为好。不过Web服务器控件的缺点是占用服务器资源,页面Postback过多存在的就是合理的,Html还是要会地,Javascript当然是要好好学地,Web开发各种奇奇怪怪的标签共存于Page中的场面短时间内是不可能消失地,3.3验证控件,ASP.NET提供了多种验证控件这些验证控件都支持服务器端验证,如果浏览器支持DHTML的话也可提供客户端验证。如果运用得当客户端验证可以有效地减少与服务器端的交互,极大地提高Web应用程序的性能。验证控件通常要认证其他控件的有效性,因而必须和其他控件一起使用,它们都具有一个属性ControlToValidate来指定要验证的控件,这个值是必需的,否则验证控件将会出错,3.3验证控件,3.3验证控件-示例,【例】打开VisualStudio.NET新建一个Web应用程序项目,命名为Validator。向Web窗体中添加标签控件、输入控件和验证控件。依次放入5个标签控件,设定它们的Text属性分别为“姓名”、“年龄”、“密码”、“确认密码”和“E-mail”。在标签控件之后依次放入5个输入框控件,它们的ID在默认状态下会自动设为TextBox1、TextBox2、TextBox3、TextBox4和TextBox5。设定TextBox3和TextBox4的TextMode属性为Password。在TextBox1、TextBox2、TextBox4和TextBox5控件后分别放入一个RequiredFieldValidator验证控件,分别将这些RequiredFieldValidatork控件的ErrMessage属性设定为“姓名不能为空”、“年龄不能为空”、“密码不能为空”和“E-mail不能为空”,ControlToValidate属性分别设置为TextBox1、TextBox2、TextBox4和TextBox5。TextBox2后再放入一个RangeValidator验证控件其ErrMessage属性设为“值不合法”,ControlToValidate属性设为TextBox2,MaximumValue属性设为100,Minimum属性设为1,Type属性设为Integer。TextBox4后再放入一个CompareValidator控件,它的ErrMessage属性设为“两次输入不一致”,ControlToCompare属性设为TextBox3,ControlToValidtae属性设为TextBox4。Text5后再放一个RegularExpressionValidator控件ErrMessage属性设为“输入不正确”,ControlToValidator属性设为TextBox5,当在属性对话框选择ValidationExpress属性时会弹出【正则表达式编辑器】对话框,从中选择【Internet电子邮件地址】最后向窗体中添加一个Button控件和一个ValidationSummary控件。,3.3验证控件-示例,RequiredFieldValidator控件保证它所验证控件的输入不能为空RangeValidator控件保证了它所验证控件的输入应在一定的范围内。在本例中保证在TextBox2中输入为1到100之间的整型值。CompareValidator控件将它验证的控件的内容与另一个控件或另一个值进行比较,在本例中使用了ControlToCompare属性,以此来表明需要与另一控件相比较,默认的比较操作属性Operator的值是Equal(相等),这样该控件的功能其实就是保证两次密码输入相等。RegularExpressionValidator保证控件的输入应满足特定的正则表达式规则,本例指定为“Internet电子邮件地址”,即要求TextBox5中要输入一个电子邮件地址。这些验证控件的EnableClientScript现在都默认为True,这就表明将生成浏览器脚本在客户端进行验证。运行程序,在验证控件对应的文本框中必须正确输入,否则将会在验证控件的位置出现错误信息,在ValidationSummary控件中则会显示出所有这些错误信息CustomValidator控件提供了用户自定义的功能,当上面的验证控件都无法满足要求的时候就需要CustomValidator控件了。它提供了自定义客户端与服务器端验证的功能,它包含有一个ClientValidationFunction属性和ServerValidate事件,可以分别与客户端和服务器端进行绑定,然后编写满足自己需要的验证函数,3.3验证控件-验证控件的使用,3.3验证控件-正则表达式编辑器,3.3验证控件-程序的运行,3.4用户控件,当ASP.NET提供的控件都无法满足要求的时候就需要自己编写控件了,这些控件叫做用户控件。可以使用两种方式来创建用户控件一种方式是把以前编写的Web页面包装成控件,这样的控件称为Web用户控件另一种方式是从.NET的某个框架类继承一个新类用来生成控件,这样的控件称为Web自定义控件,3.4用户控件-Web用户控件,先来介绍第一种方式,下面创建一个Web窗体,然后把它转化成Web用户控件的形式,接着再创建一个新的Web窗体来使用这个控件。【例】新建一个ASP.NETWeb应用程序,命名为MyControl,在窗体上放入一个标签控件、一个文本框控件和一个Button控件。双击Button控件将切换到代码编辑对话框,在Button1_Click方法中填写下列代码:privatevoidButton1_Click(objectsender,System.EventArgse)/改变文本标签的内容Label1.Text=Hello+TextBox1.Text;切换到Web窗体的HTML代码对话框,将显示出WebForm1.aspx文件的内容。现在依次进行下面步骤,将Web页面转换成Web控件。(1)从文件中删除标签、标签、标签及内容、标签和标签。(2)将文件第一行的Page改为Control并把WebForm1.aspx.cs更名为WebForm1.ascx.cs,3.4用户控件-Web用户控件,3.4用户控件-Web用户控件,(3)在解决方案对话框中选中WebForm1.aspx,右击选择【重命名】,将WebForm1.aspx的名字改为WebForm1.ascx,这时文件WebForm1.aspx.cs也会自动更名为WebForm1.ascx.cs。将WebForm1.ascx.cs中的publicclassWebForm1:System.Web.UI.Page一行改为publicclassWebForm1:System.Web.UI.UserControl(4)保存项目,Web用户控件就完成了。这个Web用户控件只实现了很简单的功能。为使一个Web对话框变为控件必须首先将其中的页面元素删除,其次由于Web用户控件的扩展名为ascx,因此也要将aspx扩展名变为ascx,最后Web用户控件应由用户控件类派生。下面用一个新的Web应用程序项目来测试一下刚才生成的Web用户控件。新建一个ASP.NETWeb应用程序,命名为UserControl。在解决方案资源管理器对话框内的UserControl项上右击,选择【添加现有项】,弹出【添加现有项】对话框,文件类型中选择【公用Web文件】,定位到MyControl目录选定WebForm1.ascx,单击【打开】按钮。添加MyControl引用这时就把Web用户控件添加到了UserControl项目中,在解决方案资源管理器内单击WebForm1.ascx,把它拖动到Web对话框中。Web对话框中就会出现刚才新建的Web用户控件由于现在的控件没有设计器的支持,因此在设计对话框中没有显示出Web用户控件的显示界面。执行这个项目,在文本框内输入“maj”,单击按钮,这时标签中就会显示出“Hellomaj”。整个页面的功能其实都是由一个Web用户控件提供的。可以将更复杂的窗体组合在一起做成Web用户控件,使用在项目里以达到代码重用的目的,3.4用户控件-添加现有项对话框,3.4用户控件-向窗体中添加Web用户控件,3.4用户控件-使用Web用户控件,3.4用户控件-Web自定义控件,Web自定义控件是一种更方便、功能更强大的设置用户控件的方式。它最终将编译成DLL文件,可以方便地进行发布。【例】新建一个项目,在右侧【模板】栏内选择【Web控件库】,将项目名称改为MyCustomControl,单击【确定】按钮。usingSystem;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.ComponentModel;namespaceMyCustomControlDefaultProperty(Text),ToolboxData()publicclassWebCustomControl1:System.Web.UI.WebControls.WebControl/将此控件呈现给指定的输出参数/要写出到的HTML编写器/输出当前时间protectedoverridevoidRender(HtmlTextWriteroutput)output.Write(DateTime.Now.ToString();,3.4用户控件-Web自定义控件,上面的代码实现了一个显示出当前时间的控件。当控件呈现在页面上时会调用Render方法,本例中当前的时间就是在Render方法中输出的。这个控件没有公开任何的属性和事件。保存项目,选择【生成】|【生成MyCustomControl】命令,这将会在该项目对应目录的binDebug子目录下生成名为MyCustomControl.dll的文件。这样这个简单的Web自定义控件就生成了。现在演示如何使用这个控件。新建一个ASP.NETWeb应用程序项目,命名为UseCustomControl。下一步要把新建的控件加入到工具箱内,选择【工具】|【选择工具箱】命令单击【浏览】按钮,在弹出的对话框中选定CustomControl项目所在目录,选定文件CustomControl.dll,单击【确定】按钮。这样在Web的工具箱中就会出现一个新的控件。选定该控件并把它添加到窗体上。执行这个项目。在浏览器中显示出了当前的时间。例子虽然简单但是却演示了Web自定义控件的基本生成方法,生成用户自定义控件的过程都是一致的,如果综合运用.NET的类库就可以实现更加复杂的自定义控件。如果想使控件设计时更加美观,可以将System.Design.dll引用到项目里,并从System.Web.UI.Design.ControlDesigner继承一个新类,实现该类的GetDesignTimeHtml方法,并把它加入到自定义控件的属性声明中,这样就可像普通Web服务器控件一样在设计阶段就可以显示出外观,3.4用户控件,向工具箱中添加控件,3.4用户控件,添加到工具箱中的用户自定义控件,3.4用户控件,用户自定义控件的使用,4创建Web服务,4.1Web服务4.2一个简单的Web服务4.3使用Web服务访问数据库,4.1Web服务,Web服务提供了一种调用网络应用的新方法,刚一出现就表现出了极大的生命力,它也许会带来网络应用程序的重大变革在Internet的发展中,如何使各种应用系统有效集成一直是一个令人头痛的问题。使用不同技术建立起来的Internet应用系统无法互相通信,彼此的功能无法相互调用,造成了网络资源的极大浪费。虽然CORBA、DCOM/COM+等技术为此进行了极大的努力,但目前仍然无法有效地解决问题,Web服务的出现给我们带来了新的希望Web服务使用基于XML的消息协议SOAP,提供了规范的数据封包格式并且使用HTTP协议传输,从而可以方便地在各种异构的应用系统之间进行通讯。同样基于XML的WSDL用作Web服务的服务描述,它向外公布了Web服务所提供服务的接口。UDDI则提供了Web服务的服务发现机制,4.2一个简单的Web服务,下面来创建一个简单的Web服务来演示它的基本组成。【例】VisualStudio.NET为Web服务提供了强大的支持,借助它可以方便地进行Web服务的开发。打开VisualStudio.NET,新建项目,在项目模板中选择【ASP.NETWeb服务】,命名为MyWebService。这时将出现设计对话框,现在切换到代码编辑对话框,按下面的程序改变对话框中的代码。usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Diagnostics;usingSystem.Web;usingSystem.Web.Services;namespaceMyWebService/Service1的摘要说明/,4.2一个简单的Web服务,/设定该Web服务的命名空间WebService(Namespace=,4.2一个简单的Web服务,#endregion/WEB服务示例/HelloWorld()示例服务返回字符串HelloWorld/若要生成,请取消注释下列行,然后保存并生成项目/若要测试此Web服务,请按F5键/实现两个数相加的Web服务WebMethodpublicintAdd(intfirstnumber,intsecondnumber)returnfirstnumber+secondnumber;这样就实现了一个简单的Web服务,它只提供了一项功能,计算两个整数的和。现在运行程序来测试这个Web服务。不过要注意Web服务并不是在运行后的浏览器对话框中显示的这样,它本身只是提供给用户的服务,这里看到的只是ASP.NET提供的一个方便的测试界面。,4.2一个简单的Web服务,测试Web服务,4.2一个简单的Web服务,在类Service1上加入一行WebService(Namespace=,4.2一个简单的Web服务,测试Add方法,4.2一个简单的Web服务,Web服务调用结果,4.3使用Web服务访问数据库,下面结合使用ADO.NET创建一个可访问数据库的Web服务,同时编写一个客户端程序,用来调用这个Web服务。【例】新建项目,在【模板】中选择【ASP.NETWeb服务】,将该项目命名为MyDataService。usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Diagnostics;usingSystem.Web;usingSystem.Web.Services;namespaceMyDataService/Service1的摘要说明/指定该Web服务的命名空间WebService(Namespace=,4.3使用Web服务访问数据库,#regionComponentDesignergeneratedcode/Web服务设计器所必需的privateIContainercomponents=null;/设计器支持所需的方法-不要使用代码编辑器修改此方法的内容/privatevoidInitializeComponent()/清理所有正在使用的资源/protectedoverridevoidDispose(booldisposing)if(disposing,4.3使用Web服务访问数据库,#endregion/建立一个sqlConnection连接SQLServer数据库publicSqlConnectionmyConn=newSqlConnection(DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=northwind);WebMethodpublicDataSetGetDataSet()/建立一个sqlDataAdapter取得products表内容SqlDataAdaptermyDA=newSqlDataAdapter(SELECT*FROMPRODUCTS,myConn);/新建一个数据集DataSetmyDS=newDataSet();/填充数据集myDA.Fill(myDS);returnmyDS;该Web服务提供了一个GetDataSet方法,它通过SqlConnection对象连接到数据库,并将Products表的数据填充到数据集中,然后将得到的数据集返回。下面开始编写一个Web应用程序来调用刚才生成的Web服务的客户程序。新建一个ASP.NETWeb应用程序项目,命名为UseDataService。转到该项目的解决方案资源管理器对话框,从列表中选择【引用】,右击,选择【添加Web引用】,将弹出【添加Web引用】对话框。,4.3使用Web服务访问数据库,【添加Web引用】对话框,4.3使用Web服务访问数据库,在该对话框的地址栏中填入刚才新建的Web服务的位置,这里是http:/localhost/MyDa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025新能源行业安全管理标准化与技术创新案例解析报告
- 工程机网络建设方案(3篇)
- 2025年绿色建材市场推广与政策支持下的绿色建筑市场风险防控报告
- 热电联产品牌形象构建-洞察及研究
- 城市地下停车场智慧化管理系统在2025年智慧城市建设中的应用价值研究报告
- 安全生产警钟长鸣培训会课件
- 城市地下停车场智慧化管理系统2025年技术升级与市场竞争格局
- 任务三 使用信息技术工具说课稿-2025-2026学年小学信息技术(信息科技)五年级上册桂科版
- 工程类紧急抢险方案(3篇)
- 2025年教育行业质量评估与认证体系下的教育市场分析报告
- 统编版高中思想政治必修1第一课社会主义从空想到科学、从理论到实践的发展1.2科学社会主义的理论与实践 教学课件
- 摄影剪辑基本知识培训课件
- 北京高校标准化食堂标准(2026版)讲解
- 2025北京市交通发展年度报告
- 凿壁借光课文讲解
- 可靠性基础知识培训课件
- 2025年全国招标采购专业技能大赛(地方组)历年参考题库含答案详解(5套)
- 2025至2030全球及中国医疗设备维修服务行业项目调研及市场前景预测评估报告
- 2025年汽车驾驶员(技师)考试试题及答案
- 耗材产品售后方案(3篇)
- 2025年全国保密教育线上培训考试试题库(含答案)
评论
0/150
提交评论