蛙蛙池塘

没有公主的蛙蛙王子

用户操作
[即时聊天] [发私信] [加为好友]
蛙蛙王子ID:onlytiancai
123958次访问,排名687好友1人,关注者2
onlytiancai的文章
原创 93 篇
翻译 0 篇
转载 22 篇
评论 117 篇
蛙蛙王子的公告
残荷听雨,梨花飞雪,落英缤纷时节。晓来谁染枫林醉?点点都是离人泪
活着,就是快乐!自信,就是美丽! 有人爱,就是幸福。

但愿野百合也有春天

最近评论
hdnero:wow power leveling
hdnero:wow power leveling
lindahou:THANK YOU VERY MUCH
mylittledog:如果我要添加http://172.20.50.11呢?
hm8030:问题2:请教:怎样让页面局部无刷新更新数据呀,xmlhttp可以发送recordset吗?

问题是这样的:我的首页上有好几处显示数据的表格,每个表示对应着服务器的一个记录集(recordset),我想让其中几个表格能够每隔30秒种更新一下数据,前提是网页的其它部分,比如说广告,图片等不用更新。
整个页面的无刷新更新和只更新某个字符串我已经做到了,现在我是想让一……
文章分类
收藏
    相册
    友情博客
    Anatoly 姐姐的博客
    Bob Beauchemin姐姐的博客
    chnking姐姐的博客
    cocosoft姐姐的博客
    donet姐姐的博客
    Eric/xin姐姐的博客
    ilqtj姐姐的博客
    JAVA姐姐的博客
    Nathan Dunlap姐姐的博客
    Sinoprise Studios姐姐的博客
    千山一鸟的博客
    土人姐姐的博客
    微软姐姐的博客
    思归姐姐的博客
    木子姐姐的博客
    笨笨姐姐的博客
    阿好姐姐的博客
    飞信美眉 飞信交友
    龙卷风姐姐的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 蛙蛙推荐:第一个实际应用中开发的自定义web服务器控件收藏

    新一篇: 蛙蛙推荐:一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题) | 旧一篇: zt:提高网站在Google中的排名,——面向搜索引擎的网站设计

    自定义服务器控件ViewSuo的源文件

     

    using System;

    using System.Web.UI;

    using System.Web.UI.WebControls;

    using System.ComponentModel;

    using System.Collections;

    using System.Diagnostics;

    using System.Data;

    using System.Drawing;

     

    namespace oa.cls

    {

     

         /// <summary>

         /// 查看事务所详细信息的自定义服务器控件

         /// </summary>

         [ToolboxData("<{0}:ViewSuo runat=server></{0}:ViewSuo>")]

         public class ViewSuo : System.Web.UI.WebControls.WebControl, INamingContainer

         {

             private DataSet dataSource;

     

             /// <summary>

             /// 设置数据源

             /// </summary>

             [Bindable(true),

             Category("Data"),

             DefaultValue(null),

             Description("设置数据源"),

             DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)

             ]

             public DataSet DataSource

             {

                  get

                  {

                       return dataSource;

                  }

                  set

                  {

                       dataSource = value;

                  }

             }

     

              protected override void Render(HtmlTextWriter output)

             {

                  PrepareControlHierarchy();

                  RenderContents(output);

             }

     

             private void PrepareControlHierarchy()

             {

                  if (HasControls() == false)

                       return;

             }

     

             protected override void CreateChildControls() 

             {

                  Controls.Clear();

                  if (Page.IsPostBack)

                       CreateControlHierarchy(false);

             }

     

             public override void DataBind()

             {

                  base.OnDataBinding(EventArgs.Empty);

                  Controls.Clear();

                  ClearChildViewState();

     

                  CreateControlHierarchy(true);

                  ChildControlsCreated = true;

             }

     

             protected override void TrackViewState()

             {

                  base.TrackViewState();

             }

     

             /// <summary>

             /// 这里是主要实现输出的方法,DataList来完成输出,模板SuoTemplate是详细实现细节.

             /// 其它部分都可以套用,自定义的属性都在这里设置,比如说DataList显示的列数,,高等.

             /// </summary>

              /// <param name="useDataSource"></param>

             private void CreateControlHierarchy( bool useDataSource )

             {            

                  DataList dl = new DataList();

                  dl.RepeatColumns = 1;

                  dl.RepeatDirection = RepeatDirection.Vertical;

                  dl.ID = "productList";

                  dl.ItemTemplate = new SuoTemplate();

                  dl.ItemStyle.Width = new Unit(500, UnitType.Pixel);

                  dl.Width = new Unit(650, UnitType.Pixel);

                  Controls.Add( dl );             

     

                  if (useDataSource == true )

                  {

                       dl.DataSource = dataSource.Tables[0];

                       dl.DataBind();

                  }

             }

         }

    }

     

    ViewSuo控件中用到的SuoTemplate模板的源文件

     

    using System;

    using System.Web;

    using System.Web.UI;

    using System.Web.UI.WebControls;

    using System.ComponentModel;

    using System.Collections;

    using System.Diagnostics;

    using System.Data;

    using System.Drawing;

    using System.Text;

     

    namespace oa.cls

    {

     

         public class SuoTemplate : ITemplate

         {

             public SuoTemplate() { }

     

             public void InstantiateIn( Control container )

             {

                  Literal l = new Literal();

                  l.DataBinding += new EventHandler(this.BindData);

                  container.Controls.Add( l );

             }

     

             /// <summary>

             /// 在这个方法里控制模板的主要输出,其中用到了数据绑定的一些内容

             /// 要改变显示在这里修改

             /// </summary>

             /// <param name="sender"></param>

             /// <param name="e"></param>

             public void BindData( object sender, EventArgs e)

             {

                  Literal l = (Literal)sender;

                  DataListItem container = (DataListItem)l.NamingContainer;

                  DataRowView currentRowView = (DataRowView) container.DataItem;

     

                  //HttpContext ht = HttpContext.Current;

     

                  StringBuilder sb = new StringBuilder();

                  sb.Append("<table width=\"100%\"  border=\"0\" align=\"center\">");

                  sb.Append("  <tr>");

                  sb.Append("    <td width=\"17%\" align=\"right\"><strong>事务所名称:</strong></td>");

                  sb.Append("    <td width=\"26%\">"+currentRowView["name"]+"</td>");

                  sb.Append("    <td width=\"19%\" align=\"right\"><strong>主任:</strong></td>");

                  sb.Append("    <td width=\"38%\">"+currentRowView["zhuren"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("    <td align=\"right\"><strong>许可证号:</strong></td>");

                  sb.Append("    <td>"+currentRowView["zhiye"]+"</td>");

                  sb.Append("    <td align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td>"+currentRowView["bianzhi"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("    <td align=\"right\"><strong>组织形式:</strong></td>");

                  sb.Append("    <td>"+currentRowView["zuzhi"]+"</td>");

                  sb.Append("    <td align=\"right\"><strong>隶属关系:</strong></td>");

                  sb.Append("    <td>"+currentRowView["lishu"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("    <td align=\"right\"><strong>主管机关:</strong></td>");

                  sb.Append("    <td>"+currentRowView["zhuguan"]+"</td>");

                  sb.Append("    <td align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td>"+currentRowView["nianshen"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("</table>");

                  sb.Append("<table width=\"100%\"  border=\"0\" align=\"center\">");

                  sb.Append("  <tr>");

                  sb.Append("    <td width=\"17%\" align=\"right\"><strong>设立时间:</strong></td>");

                  sb.Append("    <td width=\"26%\">"+currentRowView["sheli"]+"</td>");

                  sb.Append("    <td width=\"19%\" align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td width=\"38%\">"+currentRowView["quyu"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("    <td height=\"16\" align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td>"+currentRowView["lvshi"]+"</td>");

                  sb.Append("    <td align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td>"+currentRowView["phone"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("    <td align=\"right\"><strong>律师助理:</strong></td>");

                  sb.Append("    <td>&nbsp;</td>");

                  sb.Append("    <td align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td>"+currentRowView["zhuli"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("    <td align=\"right\"><strong>行政人员:</strong></td>");

                  sb.Append("    <td>"+currentRowView["xingzheng"]+"</td>");

                  sb.Append("    <td align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td>"+currentRowView["huji"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("    <td align=\"right\"><strong>专业资格:</strong></td>");

                  sb.Append("    <td>"+currentRowView["zige"]+"</td>");

                  sb.Append("    <td align=\"right\"><strong>主任手机:</strong></td>");

                  sb.Append("    <td>"+currentRowView["shouji"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("    <td align=\"right\"><strong>固定资产:</strong></td>");

                  sb.Append("    <td>"+currentRowView["zichan"]+"</td>");

                  sb.Append("    <td align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td>"+currentRowView["zip"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("    <td align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td>"+currentRowView["jingfei"]+"</td>");

                  sb.Append("    <td align=\"right\"><strong>&nbsp;&nbsp;&nbsp;&nbsp;:</strong></td>");

                  sb.Append("    <td>"+currentRowView["dizhi"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("  <tr>");

                  sb.Append("   <td align=\"right\"><strong>分所情况:</strong></td>");

                  sb.Append("   <td colspan=\"3\">"+currentRowView["fensuo"]+"</td>");

                  sb.Append("  </tr>");

                  sb.Append("</table>");

                  l.Text = sb.ToString();

             }

         }

        

    }

     

    测试自定义控件的前台页代码

     

    <%@ Page language="c#" Codebehind="0.aspx.cs" AutoEventWireup="false" Inherits="oa._0" %>

    <%@ Register TagPrefix="wawa" Namespace="oa.cls" Assembly="oa"%>

    <!--在使用自定义控件前需要先用Register关键字注册,Assembly属性设置应用程序的名字就可以,就是BIN目录下的那个主DLL的名字->

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

    <HTML>

           <HEAD>

                  <title>0</title>

                  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">

                  <meta name="CODE_LANGUAGE" Content="C#">

                  <meta name="vs_defaultClientScript" content="JavaScript">

                  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">

           </HEAD>

           <body MS_POSITIONING="FlowLayout">

                  <form id="Form1" method="post" runat="server">

                  <!--在这里放置一个自定义控件-->

                         <wawa:ViewSuo id="suo1" runat="server" />

                  </form>

           </body>

    </HTML>

     

    页面后台代码

    using System;

    using System.Collections;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Web;

    using System.Web.SessionState;