coollion  
永远都不要指望明天!

  这个程序是照着开发文档做的,不是很难,可第一次接触吧,在创建HTML字符串时整花了半天时间,终于忙完了,和源程序有不少改动(改成加载长春的地图了,并且搜索的是单层),因为开始我做是照自己理解做的,把远程都改成自己能容易理解的语句了,呵呵,最需要注意的是s+="<td style=\"cursor:hand\" onClick=\"Result_X.value="+r.Center.X+";Result_Y.value="+r.Center.Y+";Result_Name.value=\\\'"+r.FieldValues[index].ToString()+"\\\';MapControl1_DoPostBack();\">&nbsp;&nbsp;"+r.FieldValues[index].ToString()+"</td></tr>";中间的那三个杠,现在也不明白为什么要有这三个杠?高手请指点!谢谢了

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
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 SuperMap.IS.WebControls;
using SuperMap.IS.Utility;

namespace test
{
    
/// <summary>
    
/// supermapdivchaxun 的摘要说明。
    
/// </summary>

    public class supermapdivchaxun : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.TextBox TextBox1;
        
protected SuperMap.IS.WebControls.MapControl MapControl1;
        
protected System.Web.UI.WebControls.Button Button1;
    
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
if(!Page.IsPostBack)
            
{
                
this.TextBox1.Text="伪皇宫";
            }
    
            
else
            
{
                
string x=this.Page.Request.Params["Result_X"];
                
string y=this.Page.Request.Params["Result_Y"];
                
string n=this.Page.Request.Params["Result_Name"];
                
if(x!=null&&y!=null&&n!=null)
                
{
                    MapCoord mapCenter
=new MapCoord(Double.Parse(x),Double.Parse(y));
                    
this.MapControl1.Zoom(mapCenter,1.0);
                    
this.MapControl1.CustomLayer.Divs.Insert("ball",Double.Parse(x),Double.Parse(y),"<a target='_blank' href='url' title='"+n+"'><img border=0 src='images/hotball.gif'></a>");
                    
this.MapControl1.CustomLayer.Visible=true;
                }

            }

         }

        
        
public void Show(ResultSet rs)
        
{
            
if(rs==null||rs.Recordsets==null||rs.Recordsets.Length<=0||rs.TotalCount<=0)
            
{
                Response.Write(
"<script>alert(\"not find!\");</script>");
                
return;
            }

            
if(Page.IsStartupScriptRegistered("s"))
            
{
                
return;
            }

            Session[
"ResultSet"]=rs;
            
int tableCount=rs.Recordsets.Length;
            
string s="<script language='javascript'>var strTable='<input type=hidden name=Result_X ><input type=hidden name=Result_Y ><input type=hidden name=Result_Name >";
            Recordset curRecordset;
            
for(int i=0;i<tableCount;i++)
            
{
                curRecordset
=rs.Recordsets[i];
                s
+="<table style=\"BORDER-LEFT-COLOR: lightgreen; BORDER-BOTTOM-COLOR: lightgreen; BORDER-TOP-STYLE: ridge; BORDER-TOP-COLOR: lightgreen; BORDER-RIGHT-STYLE: ridge; BORDER-LEFT-STYLE: ridge; BORDER-RIGHT-COLOR: lightgreen; BORDER-BOTTOM-STYLE: ridge\">";
                
int index=0;
                
for(int j=0;j<curRecordset.ReturnFields.Length;j++)
                
{
                    
if(curRecordset.ReturnFields[j]=="name")
                    
{
                        index
=j;
                        
break;
                    }

                }

                
for(int j=0;j<curRecordset.Records.Length;j++)
                
{
                    Record r
=curRecordset.Records[j];
                    s
+="<tr>";
                    
if(r.Center!=null)
                    
{
                        s
+="<td style=\"cursor:hand\" onClick=\"Result_X.value="+r.Center.X+";Result_Y.value="+r.Center.Y+";Result_Name.value=\\\'"+r.FieldValues[index].ToString()+"\\\';MapControl1_DoPostBack();\">&nbsp;&nbsp;"+r.FieldValues[index].ToString()+"</td></tr>";
                    }

                    
else
                    
{
                        s
+="</tr>";
                    }

                    
                }

                s
+="</table>'";
            }

            s
+=";var divQueryResult=document.getElementById('DivQueryResult');if(divQueryResult!=null){    divQueryResult.innerHTML=strTable;}</script>";
            
if(!Page.IsStartupScriptRegistered("s"))
            
{
                Page.RegisterStartupScript(
"sInCurrentWindow",s);
            }

        }



        
Web 窗体设计器生成的代码

        
private void Button1_Click(object sender, System.EventArgs e)
        
{
            QueryParam q
=new QueryParam();
            q.IsAllLayer
=false;
            q.Layers
=new QueryLayer[1];
            q.Layers[
0]=new QueryLayer();
            q.Layers[
0].Name="Park@changchun";

            q.ReturnFields
=new string[2];
            q.ReturnFields[
0]="SMID";
            q.ReturnFields[
1]="name";
            q.Layers[
0].WhereClause="name like '*"+this.TextBox1.Text.ToString().Trim()+"*'";
            ResultSet rs
=MapControl1.QueryBySQL(q);
            Show(rs);
        }

        
//        private void supermapdivchaxun_PreRender(object sender, System.EventArgs e)
//        {
//            // 显示上次的SQL查询结果 ,用于保持查询结果状态
//            object o = Session["ResultSet"];
//            if(o != null)
//            {
//                SuperMap.IS.Utility.ResultSet resultSet = (ResultSet)o;
//                if(resultSet != null)
//                {
//                    Show(resultSet);
//                }
//            }
//        }
    }

}

posted on 2006-07-30 22:13  coollion  阅读(863)  评论(1)    收藏  举报