C# asp.net ajax javascript 数据库

ASP.NET及C#网上资料小收藏 <br />http://blog.csdn.net/guyehanxinlei/archive/2008/01/18/2051333.aspx<br />使用SqlBulkCopy类加载其他源数据到SQL表 <br />在数据回发时,维护ASP.NET Tree控件的位置 <br />vagerent的vs2005网站开发技巧 <br />ASP.NET2.0小技巧--内部控件权限的实现 <br />图片滚动代码。 <br />css——之三行三列等高布局 <br />Datagird TemplateC 阅读详情

ajaxPro.dll用法解析

引用:

Asynchronous JavaScript and XML
(AJAX)最近掀起的高潮,要完全归功于Google在Google Suggest和Google Maps中的使用。对ASP.NET而言,AJAX不需要回传就能进行服务器端处理,从而使客户机(浏览器)具有丰富的服务器端能力。换句话说,它为异步指派和处理请求与服务器响应提供了一个框架。AJAX利用了一些不是很新颖的已有技术,但是对这些技术(加到一起就是AJAX)的爱好最近突然升温。

请尝试Michael Schwarz的AJAX .NET包装器,通过它ASP.NET开发人员可以快速方便的部署很容易利用AJAX功能的页面。需要注意的是,这个包装器处于初期开发阶段,因此还没有完全成熟。

然而,AJAX这样的技术很可能破坏分层体系结构(N-Tier)。我的看法是,AJAX增加了表示逻辑层(甚至更糟,业务层)渗透到表示层的可能性。像我这样严肃的架构师对这种想法可能畏步不前。我感到AJAX的使用即便稍微越过了层次边界,这种代价也是值得深思的。当然,这要视具体的项目和环境而定。

起步

它是如何工作的——概述

AJAX依靠代理(broker)指派和处理往返服务器的请求。对此,.NET包装器依靠客户端XmlHttpRequest对象。多数浏览器都支持XmlHttpRequest对象,这就是选择它的原因。因为包装器的目的是隐藏XmlHttpRequest的实现,我们就不再详细讨论它了。

包装器本身通过将.NET函数标记为AJAX方法来工作。标记之后,AJAX就创建对应的JavaScript函数,这些函数(和任何JavaScript函数一样)作为代理可以在客户端使用XmlHttpRequest调用。这些代理再映射回服务器端函数。

复杂吗?并不复杂。我们来看一个例子。假设有一个.NET函数:

ublic int Add(int firstNumber, int secondNumber)
{
  return firstNumber + secondNumber;
}

AJAX .NET包装器将自动创建名为“Add”、带有两个参数的JavaScript函数。使用JavaScript(在客户机上)调用该函数时,请求将传递给服务器并把结果返回给客户机。

初始设置

我们首先介绍“安装”项目中使用的.dll的步骤。如果您很清楚如何添加.dll文件引用,可以跳过这一节。

首先,如果还没有的话,请下载最新的AJAX版本。解压下载的文件并把ajax.dll放到项目的引用文件夹中。在Visual Studio.NET中有机Solution Explorer的“References(引用)”节点并选择Add Reference(添加引用)。在打开的对话框中,单击Browse(浏览)并找到ref/ajax.dll文件。依次单击Open(打开)和Ok(确认)。这样就可以用AJAX .NET包装器编程了。

建立HttpHandler

为了保证正常工作,第一步是在web.config中设置包装器的HttpHandler。不需要详细解释HttpHandlers是什么及其如何工作,只要知道它们用于处理ASP.NET请求就足够了。比如,所有*.aspx页面请求都由System.Web.UI.PageHandlerFactory类处理。类似的,我们让所有对ajax/*.ashx的请求由Ajax.PageHandlerFactory处理:

<configuration>
  <system.web>
   <httpHandlers>
    <add verb="POST,GET" path="ajax/*.ashx"
      type="Ajax.PageHandlerFactory, Ajax" />
   </httpHandlers> 
   ...
  <system.web>
</configuration>

简言之,上面的代码告诉ASP.NET,和指定路径(ajax/*.ashx)匹配的任何请求都由Ajax.PageHandlerFactory而不是默认处理程序工厂来处理。不需要创建ajax子目录,使用这个神秘的目录只是为了让其他HttpHandlers能够在自己建立的子目录中使用.ashx扩展。

建立页面

现在我们可以开始编码了。创建一个新页面或者打开已有的页面,在file后的代码中,为Page_Load事件添加以下代码:

public class Index : System.Web.UI.Page{
  private void Page_Load(object sender, EventArgs e){
    Ajax.Utility.RegisterTypeForAjax(typeof(Index));   
    //...  
  }
  //... 
}

调用RegisterTypeForAjax将在页面上引发后面的JavaScript(或者在页面中手工加入以下两行代码):

<script language="javascript" src="ajax/common.ashx"></script>
<script language="javascript"
src="ajax/Namespace.PageClass,AssemblyName.ashx"></script>

其中最后一行的含义是:

·   Namespace.PageClass——当前页面的名称空间和类(通常是@Page指令中Inherits属性的值)

·   AssemblyName——当前页面所属程序集的名称(通常就是项目名)

下面是AjaxPlay项目中sample.aspx页面的结果例子:

<%@ Page Inherits="AjaxPlay.Sample" Codebehind="sample.aspx.cs" ... %>
<html>
<head>
  <script language="javascript" src="ajax/common.ashx"></script>
  <script language="javascript"
      src="ajax/AjaxPlay.Sample,AjaxPlay.ashx"></script>
</head>
  <body>  
   <form id="Form1" method="post" runat="server">
    ...
   </form>  
  </body>
</html>

可以在浏览器中手工导航到src路径(查看源代码,复制粘贴路径)检查是否一切正常。如果两个路径都输出一些(似乎)毫无意义的文本,就万事大吉了。如果什么也没输出或者出现ASP.NET错误,则表明有些地方出现问题。

即便不知道HttpHandlers如何工作,上面的例子也很容易理解。通过web.config,我们已经保证所有对ajax/*.ashx的请求都由自定义的处理程序处理。显然,这里的两个脚本标签将由自定义的处理程序处理。

创建服务器端函数

现在来创建可从客户端调用中异步访问的服务器端函数。因为目前还不支持所有的返回类型(不用担心,将在目前的基础上开发新的版本),我们继续使用简单的ServerSideAdd函数吧。在file后的代码中,向页面添加下列代码:

[Ajax.AjaxMethod()]
public int ServerSideAdd(int firstNumber, int secondNumber)
{
  return firstNumber + secondNumber;
}

要注意,这些函数具有Ajax.AjaxMethod属性集。该属性告诉包装器这些方法创建javaScript代理,以便在客户端调用。

客户端调用

最后一步是用JavaScript调用该函数。AJAX包装器负责创建带有两个参数的JavaScript函数Sample.ServerSideAdd。对这种最简单的函数,只需要调用该方法并传递两个数字:

<%@ Page Inherits="AjaxPlay.Sample" Codebehind="sample.aspx.cs" ... %>
<html>
<head>
  <script language="javascript" src="ajax/common.ashx"></script>
  <script language="javascript"
      src="ajax/AjaxPlay.Sample,AjaxPlay.ashx"></script>
</head>
  <body>  
   <form id="Form1" method="post" runat="server">
    <script language="javascript">
     var response = Sample.ServerSideAdd(100,99);
     alert(response.value);
    </script>
   </form>  
  </body>
</html>

当然,我们不希望仅仅用这种强大的能力来警告用户。这就是所有客户端代理(如JavaScript Sample.ServerSideAd函数)还接受其他特性的原因。这种特性就是为了处理响应而调用的回调函数:

Sample.ServerSideAdd(100,99, ServerSideAdd_CallBack);

function ServerSideAdd_CallBack(response){
 if (response.error != null){
  alert(response.error);
  return;
 }
 alert(response.value);
}

从上述代码中可以看到我们指定了另外一个参数。ServerSideAdd_CallBack(同样参见上述代码)是用于处理服务器响应的客户端函数。这个回调函数接收一个响应对象,该对象公开了三个主要性质

·   Value——服务器端函数实际返回的值(无论是字符串、自定义对象还是数据集)。

·   Error——错误消息,如果有的话。

·   Request——xml http请求的原始响应。

·   Context——上下文对象。

首先我们检查error只看看是否出现了错误。通过在服务器端函数中抛出异常,可以很容易处理error特性。在这个简化的例子中,然后用这个值警告用户。Request特性可用于获得更多信息(参见下一节)。

处理类型

返回复杂类型

Ajax包装器不仅能处理ServerSideAdd函数所返回的整数。它目前还支持integers、strings、double、booleans、DateTime、DataSets和DataTables,以及自定义类和数组等基本类型。其他所有类型都返回它们的ToString值。

返回的DataSets和真正的.NET DataSet差不多。假设一个服务器端函数返回DataSet,我们可以通过下面的代码在客户端显示其中的内容:

<script language="JavaScript">
//Asynchronous call to the mythical "GetDataSet" server-side function
function getDataSet(){
  AjaxFunctions.GetDataSet(GetDataSet_callback);  
}
function GetDataSet_callback(response){
  var ds = response.value;
  if(ds != null && typeof(ds) == "object" && ds.Tables != null){
   var s = new Array();
   s[s.length] = "<table border=1>";
   for(var i=0; i<ds.Tables[0].Rows.length; i++){
    s[s.length] = "<tr>";
    s[s.length] = "<td>" + ds.Tables[0].Rows[i].FirstName + "</td>";
    s[s.length] = "<td>" + ds.Tables[0].Rows[i].Birthday + "</td>";
    s[s.length] = "</tr>";
   }
   s[s.length] = "</table>";
   tableDisplay.innerHTML = s.join("");
  }
  else {
   alert("Error. [3001] " + response.request.responseText);
  }
}
</script>

Ajax还可以返回自定义类,唯一的要求是必须用Serializable属性标记。假设有如下的类:

[Serializable()]
public class User{
  private int _userId;
  private string _firstName;
  private string _lastName;

  public int userId{
   get { return _userId; }
  }
  public string FirstName{
   get { return _firstName; }
  }
  public string LastName{
   get { return _lastName; }
  }
  public User(int _userId, string _firstName, string _lastName){
   this._userId = _userId;
   this._firstName = _firstName;
   this._lastName = _lastName;
  }
  public User(){}
  [AjaxMethod()]
  public static User GetUser(int userId){
   //Replace this with a DB hit or something :)
   return new User(userId,"Michael", "Schwarz");
  }
}

我们可以通过调用RegisterTypeForAjax注册GetUser代理:

private void Page_Load(object sender, EventArgs e){
  Utility.RegisterTypeForAjax(typeof(User));
}

这样就可以在客户端异步调用GetUser:

<script language="javascript">
function getUser(userId){
  User.GetUser(GetUser_callback);
}
function GetUser_callback(response){
  if (response != null && response.value != null){
   var user = response.value;
   if (typeof(user) == "object"){     
    alert(user.FirstName + " " + user.LastName);
   }
  }
}
getUser(1);
</script>

响应中返回的值实际上是一个对象,公开了和服务器端对象相同的属性(FirstName、LastName和UserId)。

自定义转换器

我们已经看到,Ajax .NET包装器能够处理很多不同的.NET类型。但是除了大量.NET类和内建类型以外,包装器对不能正确返回的其他类型仅仅调用ToString()。为了避免这种情况,Ajax .NET包装器允许开发人员创建对象转换器,用于在服务器和客户机之间平滑传递复杂对象。

其他事项

在其他类中注册函数

上面的例子中,我们的服务器端函数都放在执行页面背后的代码中。但是,没有理由不能把这些函数放在单独的类文件中。要记住,包装器的工作方式是在指定类中发现所有带Ajax.AjaxMethod的方法。需要的类通过第二个脚本标签指定。使用Ajax.Utility.RegisterTypeForAjax,我们可以指定需要的任何类。比如,将我们的服务器端函数作为单独的类是合情合理的:

Public Class AjaxFunctions
  <Ajax.AjaxMethod()> _
  Public Function Validate(username As String, password As String) As Boolean
   'do something
   'Return something
  End Function
End Class

通过指定类的类型而不是页面就可以让Ajax包装器创建代理:

private void Page_Load(object sender, EventArgs e){
  Ajax.Utility.RegisterTypeForAjax(typeof(AjaxFunctions));
  //...
}

要记住,客户端代理的名称是<ClassName>.<ServerSideFunctionName>。因此,如果ServerSideAdd函数放在上面虚构的AjaxFunctions类中,客户端调用就应该是: AjaxFunctions.ServerSideAdd(1,2)。

代理到底是如何工作的

Ajax工具生成的第二个脚本标签(也可以手工插入)传递了页面的名称空间、类名和程序集。根据这些信息,Ajax.PageHandlerFactory就能够使用反射得到具有特定属性的任何函数的详细信息。显然,处理函数查找具有AjaxMethod属性的函数并得到它们的签名(返回类型、名称和参数),从能够创建必要的客户端代理。具体而言,包装器创建一个和类同名的JavaScript对象,该对象提供代理。换句话说,给定一个带有Ajax ServerSideAdd方法的服务器端类AjaxFunctions,我们就会得到公开ServerSideAdd函数的AjaxFunction JavaScript对象。如果将浏览器指向第二个脚本标签的路径就会看到这种动作。

返回Unicode字符

Ajax .NET包装器能够从服务器向客户机返回Unicode字符。为此,数据在返回之前必须在服务器上用html编码。比如:

[Ajax.AjaxMethod]
public string Test1(string name, string email, string comment){
  string html = "";
  html += "Hello " + name + "<br>";
  html += "Thank you for your comment <b>";
  html += System.Web.HttpUtility.HtmlEncode(comment);
  html += "</b>.";
  return html;
}

SessionState

服务器端函数中很可能需要访问会话信息。为此,只需要通过传递给Ajax.AjaxMethod属性的一个参数告诉Ajax启用这种功能。

在考察包装器会话能力的同时,我们来看看其他几个特性。这个例子中我们有一个文档管理系统,用户编辑的时候会对文档加锁。其他用户可以请求在文档可用的时候得到通知。如果没有AJAX,我们就只能等待该用户再次返回来检查请求的文档是否可用。显然不够理想。使用支持会话状态的Ajax就非常简单了。

首先来编写服务器端函数,目标是循环遍历用户希望编辑的documentId(保存在会话中)并返回所有已释放的文档。

[Ajax.AjaxMethod(HttpSessionStateRequirement.Read)]
public ArrayList DocumentReleased(){
  if (HttpContext.Current.Session["DocumentsWaiting"] == null){
   return null;
  }
  ArrayList readyDocuments = new ArrayList();
  int[] documents = (int[])HttpContext.Current.Session["DocumentsWaiting"];
  for (int i = 0; i < documents.Length; ++i){
   Document document = Document.GetDocumentById(documents[i]);
   if (document != null && document.Status == DocumentStatus.Ready){
    readyDocuments.Add(document);
   }    
  }
  return readyDocuments;
  }
}

要注意,我们指定了HttpSessionStateRequirement.Read值(还可以用Write和ReadWrite)。

现在编写使用该方法的JavaScript:

<script language="javascript">
function DocumentsReady_CallBack(response){
  if (response.error != null){
   alert(response.error);
   return;
  }
  if (response.value != null && response.value.length > 0){
   var div = document.getElementById("status");
   div.innerHTML = "The following documents are ready!<br />";
   for (var i = 0; i < response.value.length; ++i){
    div.innerHTML += "<a href=/"edit.aspx?documentId=" + response.value[i].DocumentId + "/">" + response.value[i].Name + "</a><br />";
   }   
  }
  setTimeout('page.DocumentReleased(DocumentsReady_CallBack)', 10000);
}
</script>
 
<body onload="setTimeout('Document.DocumentReleased(DocumentsReady_CallBack)', 10000);">

我们的服务器端函数在页面加载时调用一次,然后每隔10秒钟调用一次。回调函数检查响应看看是否有返回值,有的话则在div标签中显示该用户可使用的新文档。

结束语

AJAX技术已经催生了原来只有桌面开发才具备的健壮而丰富的Web界面。Ajax .NET包装器让您很容易就能利用这种新的强大技术。请注意,Ajax .NET包装器和文档仍在开发之中。

 

使用ASP.NET中的AJAX实现后端交互 通过使用AJAX,我们可以在不刷新整个页面的情况下,与后端进行数据交互,从而提升用户体验并提供更流畅的用户界面。当用户在输入框中输入参数并点击"提交"按钮时,前端代码将触发AJAX请求,后端方法将被调用,并将结果返回给前端进行显示。接下来,我们需要在后端创建一个方法,该方法将处理来自前端的AJAX请求,并返回相应的数据。在本文中,我们将探讨如何在ASP.NET中使用AJAX来实现后端交互,并提供相关的源代码示例。首先,在ASP.NET页面的头部,我们需要引入一些必要的命名空间和脚本文件。 阅读详情

相关推荐

使用ASP.NET进行C#的Ajax操作

ASP.NET提供了一个名为"Microsoft.AspNet.WebApi.Client"的NuGet包,它包含了用于处理Ajax请求的类和方法。通过以上的步骤,我们就可以在ASP.NET中使用Ajax进行C#的异步操作了。接下来,我们可以创建一个后端的C#方法,用于处理Ajax请求并返回相应的数据。假设我们有一个名为"GetData"的方法,它接收一个参数,并返回一个字符串作为响应。方法定义了请求的方法和URL。在前端,我们可以使用JavaScript来发起Ajax请求,并处理返回的数据。

ByteHero的博客 429

ASP.NET—Ajax的基本使用

什么是Ajax   我的理解就是异步请求,在不刷新页面的情况下也可以向服务器发送请求。比如:注册的时候检查用户名是否可以使用,普通的方式就是在文本框后添加一个按钮,点击这个按钮访问数据库检查用户名是否可用,在此期间用户什么也做不了,只能等待服务器返回结果;而利用Ajax,只要文本框失去焦点,浏览器就会自动向服务器发起请求,并且不刷新页面,使用户感觉不到,在此期间,用户还可以继续输入密码。就类似于单...

张伟杰 3927

ASP.NET(C#)二级联动下拉列表实现

级联下拉列表是指当一个下拉列表的选择改变时,另一个下拉列表的选项随之更新。这种实现可以提供更好的用户体验,因为它允许用户根据选择进一步细化他们的选择。要实现级联下拉列表,通常需要在事件中重新绑定第二个下拉列表的数据,下面是一个简单的示例:// 假设CategoriesDropDownList是父级下拉列表,SubCategoriesDropDownList是子级下拉列表// 首先清空子级下拉列表// 获取父级选中的值。

weixin_42587866的博客 949

ajax在asp.net中的应用

(1)Ajax的发展史 Ajax从一种十分模糊稀罕的技术一下变成最热门的东西。Ajax最开始出现的是万维网。比较于桌面应用程序,web应用程序相当缓慢和沉闷。无论如何,人们都喜欢上了web应用程序,因为他们无论在什么地方都能上网,只要身边的计算机上安装一个浏览器就行。之后,微软在Internet Explorer 5中创建了XMLHttpRequest,它使得浏览器端JavaScript可以与w...

覃庆奖 4968

ASP.NET中实现数据库绑定的日历控件

ASP.NET日历控件提供了模板功能,允许开发者自定义特定日期的显示方式。这可以通过和等模板来实现。<%-- 在这里可以自定义模板 --%>通过使用这些模板,可以实现如特定颜色标记的节假日、事件提示等高级功能。模板的实现需要开发者熟悉ASP.NET的模板语法,并能够嵌入适当的服务器端代码或HTML标记。日历控件除了展示日历信息之外,还能够触发多种事件,如和DayRender事件,开发者可以在这些事件的处理程序中实现自定义逻辑。

weixin_42596214的博客 699

C# Web编辑器深度开发教程

Web编辑器是一种在线应用程序,它允许用户通过Web页面直接编辑内容,而无需使用传统的桌面文本编辑软件。根据功能和用途的不同,Web编辑器主要分为两大类:富文本编辑器(Rich Text Editors):提供与Microsoft Word类似的功能,允许用户创建和编辑格式化的文本。它们通常包括字体样式、颜色选择、文本对齐、表格插入等功能。源码编辑器(Source Code Editors):为开发者提供代码编辑功能,具备语法高亮、代码折叠、代码自动补全等特点。

weixin_42361478的博客 1309

【.NET全栈】ASP.NET开发Web应用——AJAX开发技术

AJAX技术是这几年中出现的较为热闹的技术。大多数的Web开发者都已经关注,或正在使用AJAX。AJAX全称是Asynchironous JavaScript and XML。中文称为异步JavaScript和XML。AJAX本身不能称为一门技术、语言或者软件。它是由多种技术组合,这些技术存在了很多年,现在借助于AJAX组合,称为一种新的开发模式。认识ASP.NET AJAXASP.NET AJAX服务器扩展ASP.NET AJAX服务器端控件扩展。

杰西笔记 1856

C#航班订票系统:实现与核心技术解析

C#(读作“看”)是一种由微软开发的面向对象的高级编程语言,它是.NET框架的一部分。它结合了强大的开发工具和功能,适用于构建各种应用程序,从简单的控制台应用程序到复杂的分布式应用程序。C#强调类型安全,并提供了自动内存管理,从而简化了开发过程。AJAX(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个页面的情况下,能够更新部分网页的技术。它允许网页实现异步更新,也就是说,网页部分数据可以实现异步地加载和更新,而不需要重新加载整个页面。

weixin_32836713的博客 673

Ajax在.NET中与Server控件的交互C#

  注:ajax的.net组件可以到此网下载,我用的是for .net 1.1版本的。        http://ajax.schwarz-interactive.de/  1. 在引用中添加引用Ajax.dll。(这个很废话)  2.在web.config中建立HttpHandler(这个当然是在system.web串里的)<httpHandlers><add verb="POST,GET"

chenjinjie的专栏 988

AJAX.DLL_AJAXPRO.DLL等各個版本

AJAX.DLL_AJAXPRO.DLL等各個版本

告别手动复制粘贴!用Python脚本+pywinauto实现PC微信消息自动发送(附完整源码)

本文详细介绍了如何利用Python和pywinauto实现PC微信消息的自动化发送,告别繁琐的手动操作。从环境搭建、UI控件定位到构建健壮的发送流程,再到高级功能扩展和项目打包部署,全面解析了自动化办公的实现方案,显著提升工作效率。

weixin_30315723的博客 584

AJAX 应用 - 透过 JavaScript 调用 C# 函数

本帖并无高来高去的高深技术,但提供一个做 ASP.NET 项目时,很实用的 Ajax 示例下载。透过 AJAX.NET 的功能,改善旧式 Callback 写法的缺点,让用户在一或多个 TextBox 输入完查找条件、鼠标离开并触发 onBlur 事件时,透过 JavaScript 调用 C# 自定义类的函数,实现高速访问数据库、查找对应多个字段的值。 之前我曾写了一篇「用 ASP.NET Ca...

weixin_30700099的博客 80

基于YOLO+DeepSeek的农作物病虫害检测系统

本系统是一个基于YOLO+DeepSeek的农作物病虫害检测系统。 可使用YOLOV1-YOLOV12的任意模型进行目标检测。可以实现检测图片、批量检测图片、视频检测、摄像头检测四种方式。

qq_51977316的博客 1809

---------------C#(.NET)学习步骤---------

了解WPF,WCF,WF  我个人建议:刚开始不要乱七八糟的学那么多的东西,人要学的东西,很多, 但是总会有个先后顺序的, C#有两个方向,Win Form和 Web ,先学一个方向的,进公司后再学  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 前前后后收到过一些学生的来信,询问ASP.NET的学习顺序问题,在此就向

a68351153的专栏 744

碳化硅外延层厚度测量:红外干涉光谱与FFT技术详解

薄膜厚度测量是半导体制造中的关键工艺控制环节,其核心原理基于光的干涉现象。当光在薄膜上下界面反射并叠加时,会产生与厚度相关的干涉条纹。通过分析这些条纹,可以非接触、无损地获取薄膜的精确厚度信息。这项技术的核心价值在于实现了对关键工艺参数的在线、快速监控,对于提升器件性能与生产良率至关重要。在第三代半导体,尤其是碳化硅功率器件的制造中,外延层厚度直接决定了器件的击穿电压和导通电阻等核心性能。红外干涉光谱法因其对碳化硅材料在红外波段的良好透过性,成为该领域主流的厚度测量方案。通过快速傅里叶变换(FFT)对采集到

weixin_29032489的博客 308

Open3D:读写点云与可视化(C++)

迭代 //Open3D #include "Open3D/Open3D.h" //Eigen #include "Eigen/Dense" void testOpen3D::xjGetInformation(const QString &pcPath) { /* read PC */ auto cloud_ptr = std::make_shared<open3d::geometry::PointCloud>(); if (!open3d::io::ReadPointCl

累了就要打游戏 1万+

清新空气---我的.net(C#)生涯知识总结 跨CSS,JS,JAVA,AJAX,WPF,WCF,LINQ,ASP.NET,Winform,Sqlserver,Mysql,EF,OOP,开发工具等...

第一部分  HTML 静态网页基础编程 1.基本标签的使用和HTML相关介绍,盒子模型等(太多了,不说明了) 2.基本CSS的使用        #id        ,  表示并关系        空格 表示包含关系        .表示自定义样式,html中用 class调用样式         其他组合标签 3.基础JAVASCRIPT的使用,会基本操作DOM    3.1...

weixin_34068198的博客 705

保姆级教程:用Altium Designer 24从零画一块PCB(附完整库文件与避坑清单)

本文提供了一份详细的Altium Designer 24(AD24)PCB设计教程,从工程创建到最终文件输出,涵盖元件库管理、原理图设计、PCB布局布线等全流程。特别适合初学者,包含STM32最小系统板的实战案例,附完整库文件和避坑清单,帮助用户快速掌握AD24的核心功能与技巧。

weixin_27697385的博客 249

通用的自动完成功能 -Ajax - asp.net

通用的自动完成功能 -Ajax + asp.net          1、当我们需要查找某个单词的时候,在查找输入框里输入字母,随着我们的输入,输入框下面就会出现相应的提示,如下图:      当我输入字母b的时候,出现了所有数据库中存有以b字母开始的所有项目,这都是实时的,接着可以输入其他的字母,然后就会逐渐缩小搜索的范围。:)看到了吧,你可以用鼠标点击下面的某个

步行者的专栏 530

高通蓝牙学习-- 关于Android 蓝牙的介绍

本文详细介绍了AOSP蓝牙架构及高通QCA芯片的蓝牙功能实现方案。主要内容包括:1)AOSP蓝牙架构在不同Android版本中的层次结构,重点分析BTHIDL层和libbt-vendor关键组件;2)QCA芯片的引导流程说明;3)两种获取libbt-vendor源码的方式(Google官方源和国内镜像源);4)针对QCA6595/6696/66x8/67x7芯片的具体实现方案,包括固件文件定义、厂商事件处理和补丁下载流程;5)蓝牙调试方法,包括logcat日志分析、HSU和Ellisys硬件跟踪技术。文章为

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 493

图机器学习(1)——图论基础

图 (Graph) 是一种描述实体间关系的数学结构,几乎在各个领域都有应用。例如,社交网络就是图,其中用户之间的连接取决于一个用户是否“关注”另一个用户。图论,即对图的研究,一直以来广受关注,包含了大量算法、性质分析方法和数学模型,以解析复杂系统的行为特征。本节将介绍图数据结构的核心概念,通过理论阐述与实例演示相结合的方式,理解基础理论用以实践应用。重点介绍用于创建、操作和研究复杂网络结构与功能的 Python 库。

盼小辉丶的博客 9078

看看如何透过JavaScript调用C#函数

本帖并无高来高去的高深技术,但提供一个做 ASP.NET 项目时,很实用的 Ajax 示例下载。透过 AJAX.NET 的功能,改善旧式 Callback 写法的缺点,让用户在一或多个 TextBox 输入完查找条件、鼠标离开并触发 onBlur 事件时,透过JavaScript 调用C#自定义类的函数,实现高速访问数据库、查找对应多个字段的值。 之前我曾写了一篇「用 ASP.NET Call...

weixin_33872660的博客 163

c#视觉应用开发中如何使用Emgu CV在C#中进行图像处理?

Emgu CV 是 OpenCV 的 .NET 包装器,可以让开发者在 .NET 语言(如 C#)中使用 OpenCV 的功能进行图像处理。在进行图像处理时,Emgu CV 提供了丰富的 API 可以使用。PictureBoxImageBox下面是一个详细的示例,演示如何使用 Emgu CV 在 C# 中进行基本的图像处理,包括加载图像、转换为灰度图像、进行边缘检测,然后显示结果。byte在这个示例中,我们使用了三个PictureBox控件来显示原始图像、灰度图像和边缘检测后的图像。

zhangzhechun的专栏 667

推开.NET技术的大门

  自从下定决心学习.NET技术后,我就一直看资料看视频,希望能尽快的让自己融入进去。但是后来发现自己越学越乱,原因是没有很好地整理这些技术点,没有一步步的去学,总是东看点儿西看点儿,没有什么章法。想想这样很浪费时间,也没有什么效果。于是作为初入.NET技术大门的菜鸟,我决定先把我要学习的东西整理出来,然后针对每项技术去有条理的学习,希望能让自己感觉到每天都有新的认识,有新的进步。   首先要从...

weixin_30696427的博客 154

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

应用ASP.NET2.0+C#2005设计 B/S结构的企业订餐管理系统

v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0

wangtong_tj的专栏 2395

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: C#FileStream复制大文件
下一篇: ADO.NET 中的 XML 特性
Caesar525
博客等级 码龄19年 11粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值