比较简单的2个WEBpart 实现通讯数据联动

刚接触这东西,搞了2天,自己出现点小错误,而且好久没写过NET了,所以对一些概念有些混淆了.

来吧.

首先建立工程吧 名字为BetaWebPart

 

里面直接写个接收的类吧

 

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls;
namespace BetaWebParts
{
    public class SayHello:WebPart
    {
        private String _sOutputText = "";
        [Personalizable]
        [WebBrowsable]
        [WebDisplayName("OutputText")]
        [WebDescription("the text")]
        public String OutputText
        {
            get { return _sOutputText; }
            set { _sOutputText=value;}
        }
        [ConnectionConsumer("receive the text message")]
        public void ReceiveTextMessage(ITextMessage message)
        {
            if ((message != null) && (message.MessageContent != null))
            {
                this.OutputText = message.MessageContent;
            }
        }
        protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)
        {

            writer.Write(OutputText);
        }

    }
}

以上WEBPART写好后,请先编译 并且添加到WEBPART库中.具体步骤参见MSDN说明书,很简单.

 

然后还是在这个工程内建立一个接口,为的是可以接收到数据啦!并且使用类来实现它!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;

namespace Beta2WebParts
{
   public class TextMessage:ITextMessage
   {
       private String _messageConet = default(String);
       public string MessageContent
       {
           get { return _messageConet; }
           set { _messageConet = value; }
       }

    }
   public interface ITextMessage
   {
       String MessageContent { get; set; }

   }
}
OK 来编写提供数据的 "兽类"吧

代码如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls;
using System.Collections;
using System.Web.UI.HtmlControls;
using System.Web.UI;
using System.Data;
namespace Beta2WebParts
{
   public class TextInputWP:WebPart
    {
        private LinkButton link = null;
        string ContentText,ID = string.Empty;
        DataTable Dt = new DataTable("GetSummary");
        Label lbTitle = null;
       protected override void CreateChildControls()
       {
           Dt = BindTable();
           BindTitle();
           for (int i = 0; i < Dt.Rows.Count; i++)
           {
               link = new LinkButton();
               link.ID = i.ToString();
               link.Text = Dt.Rows[i][1].ToString();
               link.Click += new EventHandler(btn_click);
               this.Controls.Add(new LiteralControl("<table>" + "/n"));
               this.Controls.Add(new LiteralControl("    <tr>" + "/n"));
               this.Controls.Add(new LiteralControl("    <td>" + "/n"));
               this.Controls.Add(link);
               this.Controls.Add(new LiteralControl("    <td>" + "/n"));
               this.Controls.Add(new LiteralControl("    </tr>" + "/n"));
               this.Controls.Add(new LiteralControl("</table>" + "/n"));
               base.CreateChildControls();
           }
       }
       private void GetContent(string ID,DataTable Dt)
       {
           for (int i = 0; i < Dt.Rows.Count; i++)
           {
               if (ID == Dt.Rows[i]["ID"].ToString())
               {
                   ContentText = Dt.Rows[i]["内容"].ToString();
                   break;
               }
           }
       }
       private void BindTitle()
       {
           lbTitle = new Label();
           lbTitle.Text = "新闻标题";
           lbTitle.ForeColor =System.Drawing.Color.Red;
           this.Controls.Add(new LiteralControl("<table>" + "/n"));
           this.Controls.Add(new LiteralControl("    <tr>" + "/n"));
           this.Controls.Add(new LiteralControl("    <td>" + "/n"));
           this.Controls.Add(lbTitle);
           this.Controls.Add(new LiteralControl("    <td>" + "/n"));
           this.Controls.Add(new LiteralControl("    </tr>" + "/n"));
           this.Controls.Add(new LiteralControl("</table>" + "/n"));

       }
       private void btn_click(object sender, System.EventArgs e)
       {
           LinkButton currentButton = (LinkButton)sender;
           ID = (int.Parse(currentButton.ID)+1).ToString();
           this.GetContent(ID, Dt);
          
       }
       private DataTable BindTable()
       {
           Dt.Columns.Add("ID", Type.GetType("System.Int32"));
           Dt.Columns.Add("标题", Type.GetType("System.String"));
           Dt.Columns.Add("内容", Type.GetType("System.String"));
           DataRow dr = Dt.NewRow();
           dr["ID"] = 1;
           dr["标题"] = "宋山木案赔偿太少";
           dr["内容"] = "12月24日下午,前山木培训总裁、“春晚抢镜红人”宋山木没有了他标志性的大胡子,准时出现在深圳罗湖法院。闹得沸沸扬扬的宋山木强奸案终于有了一审判决,法院以强奸罪判处其有期徒刑四年,并赔偿附带民事诉讼原告人刘某经济损失4205.87元。…";
           Dt.Rows.Add(dr);
           DataRow dr2 = Dt.NewRow();
           dr2["ID"] = 2;
           dr2["标题"] = "让子弹飞为何火爆";
           dr2["内容"] = "近年来,有票房的国产片不少,被热议的国产片也不少,但好评如潮的国产片少之又少。所以近期上映的《让子弹飞》可以说太成功了,票房多、议论多的同时还能好评多。";
           Dt.Rows.Add(dr2);
           DataRow dr3 = Dt.NewRow();
           dr3["ID"] = 3;
           dr3["标题"] = "且慢为“土地奶奶”的死刑叫好";
           dr3["内容"] = "务员职务犯罪目前已经少有判死刑的了,在即将过去的这一年,被司法处置的省部级别的官员十多位,没有一例死刑。并不是因为他们的贪污受贿没有罗亚平多,他们一般都比罗亚平多;也不是手法没有罗亚平“恶劣”,贪污受贿的恶劣程度不好评价。我很不专业,我简单化地认为,大致涉案数额越多就越恶劣,官越大就越恶劣。因为官越大,平时冠冕堂皇的大话就说得越多,而一边说大话一边侵占公众的根本利益,就越像一个骗子,因此就更恶劣。倒是官小的,例如罗亚平女士(科级),来得比较直接,平时说的话比较实在。";
           Dt.Rows.Add(dr3);
           return Dt;
       }
   
     
       [ConnectionProvider("return the text message")]
       public ITextMessage ReturnTextMessage()
       {
           this.EnsureChildControls();
           ITextMessage result = new TextMessage();
           result.MessageContent = ContentText;
           return result;
       }

    }
}
OK 编译吧 然后添加到WEB部件库中.

运行吧 效果入图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值