博文

服务器控件添加客户端脚本代码(2007-01-11 11:11:00)

摘要:对于asp控件:
<asp:Button ID="Buttonsub" runat="server" Text="ceshi"/>
需要在form的Onload时间中添加:
function initHandler()
{
var elem = document.form1.Buttonsub;
if(elem)
 {
     elem.onclick = submitClientHandler;
  }
} function submitClientHandler(){
  alert("按钮单击了!");
}
具体可以参照:
http://www.cnblogs.com/anderslly/archive/2006/09/30/doublesidesevent.html......

阅读全文(2974) | 评论:0

判断点是否在多边形中的方式(2006-08-23 17:49:00)

摘要:判断点是否在多边形中的方式: 搜索网络资源,发现判断点是否在多边形内的方式一般是以点为射线端点,向另一无穷远处做射线,判断此条射线与多边形各条边的相交情况,如果相交次数为奇数,认为点在多边形内或在多边形上,否则,认为点在多边形外.如图 这个方法无非就是判断相交次数. 具体操作时,可以简化一下: 看上图,如果要判断p1x,p1y点是否在多边形内,只需要取能够与之相交的线段进行判断而已.我这里恒认为x轴为0,y轴与测试点相同的点为射线的另一段,那么,只有y值在测试点p1y上下的线段才是我们要测试的线段,比如上图中的x3,y3和x4,y4,那么有此条件,判断设想是否和x3y3x4y4相交无非就是判断p1.X > Max(x3.X,x4.X)而已,如果成立,则射线与x3y3x4y4线段相交,如果线段的两个端点的Y值均大于或均小于p1的Y值,则无判断的必要.因为它们不可能相交. 如果是p2xp2y的情况则需要做跨立判断,因为p2x介于x4x和x5x之间,p2y介于x4y和x5y之间. 假设,p2和x4x5相交,那么它们的交点tmpP的X必定小于p2X,tmpY必定等于p2Y, 我们做x4y4x5y5的直线方程: ax + by + c = 0 a = y5-y4 b = x5-x4 c = (x5-x4)y4 –(y5-y4)x4 令y=p2Y; 那么x = (x5-x4)p2Y + ((x5-x4)y4 –(y5-y4)x4)/(y4-y5) 如果x < p2X,那么两线相交,否则两线不相交.......

阅读全文(4938) | 评论:0

一些脚本方法存档(2006-07-28 17:06:00)

摘要://往下拉框/ListBox添加节点 var option = document.createElement("option"); option.appendChild(document.createTextNode("测试节点")); option.value="测试节点"'; models.appendChild(option);   //控制DIV层的显示关闭,样式 vmsg.style.visibility = "hidden"; //vmsg是DIV的的ID,控制DIV隐藏 vmsg.style.visibility = "visible"; //vmsg是DIV的的ID,控制DIV显示 vmsg.style.left =100;//控制DIV距离页面左边100   //使用自定义的结构 //服务器端: class Student {      public string Name;     public string age; } //客户端获取到服务器端的Student数据 function GetStudentCallBack(response) { var  _Student = response.value; alert(_Student.Name); }......

阅读全文(3216) | 评论:0

在Java脚本中动态添加Ifram(2006-07-28 16:43:00)

摘要:function OpenUnitInfo(){                   var shtml = "<iframe id=frmBody src=Reristed.aspx width=750 height=560> </iframe>";  //Reristed.aspx就是要在IFram框架中插入的页面                   document.getElementById("ifrm").innerHTML = shtml; //ifrm可以是TD,DIV标签 }......

阅读全文(3595) | 评论:0

AJAX中使用JAVA脚本访问DataSet数据(2006-07-28 16:38:00)

摘要:在AJAX中从服务器获取的DataSet数据的访问: var dt = response.value.Tables[0]; //dt就是DataSet的表0 for (var i = index;i < dt.Rows.length;i++)//遍历数据行 var rowvalue = dt.Rows[i].Name;//获取Name字段的值 dt.Columns.length    //获取表中字段的数量  dt.Rows.length        //获取表中行的数量 var row = dt.Rows[i][dt.Columns[k].Name];//获取行i字段k的值     下面的例子,处理了按dt的数据构造一个table显示在指定的td节点中,并按实际行大小添加了上一页下一页的导航按钮: function NextPage(pgIndex) { //表头 var shtml ="";  var tdWidth = 50; if(_Resuldt.Columns.length > 10) {    shtml = "<TABLE cellSpacing=0 cellPadding=0 border = 1  width="+_Resuldt.Columns.length * 40+ ">" +
       "<tr height=18 bgcolor=#cccc99> ";
        tdWidth = 40; } else {          shtml ="<TABLE cellSpacing=0 cellPadding=0 border = 1 width=730><tr height=18  bgcolor=#cccc99&......

阅读全文(4367) | 评论:2

Ajax使用入门(2006-03-30 14:13:00)

摘要:AJAX   最近在网上下载了一个AJAX的DLL,使用了一下,有一些感受:   使用AJAX的确可以避免页面的刷新实现浏览器/客户端的页面交互,尤其是进行数据库数据查询,一些需要在服务器处理的业务逻辑时尤为好用,不过用了一段时间,发觉这东西入门比较简单,但是深入的使用还是很困难。   Ajax技术实质上是一种异步的浏览器请求/服务端响应的技术,很早就出来了,但是直到前不久才被广而使用,这可能是Google的功劳。使用Ajax可以带来很好的客户体验,大量的减少网络流量,降低服务端的压力,总总好处,使我们迫切的想用一下,但是我研究了这么多天,还是没研究明白。   Ajax.dll是对Ajax技术的一个封装, http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx 可以得到其技术的介绍和下载。   Ajax.dll使用入门: 首先,在C#Web窗体应用程序中添加对Ajax.dll的引用; 在WebConfig.config中的<system.web>节点下添加以下内容: <httpHandlers>       <!-- Register the ajax handler -->       <add verb="POST,GET" path="AjaxPro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro" /> </httpHandlers>  上面的内容实际上是增加Ajax类对http请求的响应,ajax会拦截来自浏览器的请求,并根据请求做响应。   在页面的代码中添加ajax对类的注册: private void Page_Load(object sender, System.EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(DataAccess)); //......

阅读全文(5695) | 评论:4

关于Web页面上屏幕坐标和地图坐标的转换思路(2006-03-30 13:41:00)

摘要:最近学习了一下MapXtreme 2004开发网页GPS定位;研究了近半月,觉得自己对JAVA脚本实在不熟悉,网页框架控制也不太好做,尤其是浏览器和服务端的交互问题一直比较难控制。 要在地图上显示GPS车辆位置,有2个办法:一个是在Map控件的地图中添加一层,然后利用已知的经纬度生成地图图元,然后在发送到浏览器,这种方式的缺点就是必须刷新浏览器才能得到最新的地图信息(包含新添加或者移动的图元),效率比较低; 另外一种方式是通过浏览器脚本实现: 首先,地图刷新到客户端浏览器的时候,把当前地图的Center、Scale、以及利用DisplayTransform.FromDisplay得到的原点(屏幕位置0,0)对应的经纬度信息一并写到浏览器端的Cookie中去;(这里说明一下,为什么要这么做呢?因为如果浏览器和服务端信息的交互势必要造成页面的刷新(可能是我没控制好),使用ajax技术又会出现地图控件没定义的问题,所以暂时我还只能把浏览器脚本可能用到的参数写到浏览器); 有了这几个参数,屏幕坐标、地图坐标的互换就简单多了: 这是相关的浏览器Java脚本: ///读取中心点,视野,原点 var centerx = 0.0;//中心x坐标 var centery = 0.0;//中心y坐标 var zooms = 0.0;//地图视野 var zerox = 0.0;// 原点X经度 var zeroy = 0.0;// 原点Y纬度   function loadzoom() { centerx = parseFloat(readcookie("CenterX"));  centery = parseFloat(readcookie("CenterY")); zooms = parseFloat(readcookie("Zoom"));  zerox = parseFloat(readcookie("ZeroX"));  zeroy = parseFloat(readcookie("ZeroY")); var s = "当前地图视野:" + zooms*1.609 + "KM\r\n" + "中心X:" + centerx +"\r\n" + "中心Y:" + centery + "......

阅读全文(7127) | 评论:2

多线程模式或异步模式下窗口编程中可视控件的操作(2006-01-11 13:19:00)

摘要:今天写一个动态增加tabpage的程序,在程序中使用了异步加载tabpage的模式,源代码: delegate void AddTabPageMethmod(TabPage page); private void AddTabPage(TabPage page) {       this.tabControl1.TabPages.Add(page); } 在线程中处理的时候这样调用: AddTabPageMethmod methAddPage = new AddTabPageMethmod (AddTabPage); TabPage page = new TabPage(); page.Name = "TabPage"; page.Text = "AddNewPage"; methAddPage.BeginInvok(page,null,null); 但是在实际运行中,执行到 this.tabControl1.TabPages.Add(page);时程序就没有任何响应, 如果不使用异步委托,直接调用AddTabPage(page);也不成功,百思不得其解 后来看了一些资料,原来使用的线程不对,要在窗体的主线程上执行才能正确执行: this.BeginInvok(methAddPage,new object[]{page}); 这里,this指主窗体. 搞定.......

阅读全文(4447) | 评论:0

关于异步Socket接收模式下的Socket缓冲区(2006-01-04 11:27:00)

摘要:在使用Socket的 异步接收时,需要定义一个对象: /// <summary>
 /// 传输对象
 /// </summary>
 public class TranslateObj
 {
  /// <summary>
  /// 缓冲区
  /// </summary>
  public byte[] bytes;
  /// <summary>
  /// 缓冲区大小
  /// </summary>
  public const int BUFFER_SIZE = 512;
  /// <summary>
  /// 存放重复接收数据的列表
  /// </summary>
  public ArrayList tmpAl;
  /// <summary>
  /// 接收/发送数据的Socket
  /// </summary>
  public Socket csock;
  public TranslateObj()
  {
   this.csock = null;
   this.bytes = new byte[BUFFER_SIZE];
   this.csock = null;
  }
  ~TranslateObj()
  {
   this.tmpAl = null......

阅读全文(8150) | 评论:1

WebService服务中修改接口说明(2005-12-31 11:55:00)

摘要:默认的WebService接口始终是没有任何提示的,但是如果在接口前添加 [WebMethod(Description="http://www.scstjw.net ",
    EnableSession=false)] 就可以在访问该接口时,在接口下方显示"http://www.scstjw.net"; 可以利用此方式,为Web服务添加接口说明
  ......

阅读全文(3993) | 评论:0