[2008/07/16]code

一品梅 2008-07-16 08:31:20
Rating Control using custom web control

MyVote.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Summary description for Class1
/// </summary>
///
namespace MyVote
{
public class Voting : WebControl,INamingContainer
{
private string voteNumber;
private int iStarCount = 3;
private string overImageUrl;
private string outImageUrl;

private ImageButton im;

public event EventHandler Click;


public string VoteCount
{
get { return voteNumber; }
set { voteNumber = value; }
}

public string MouseOver_ImagePath
{
get { return overImageUrl; }
set { overImageUrl = value; }
}


public string MouseOut_ImagePath
{
get { return outImageUrl; }
set { outImageUrl = value; }
}

public int StarCount
{
get { return iStarCount; }
set { iStarCount = value; }
}

protected override bool OnBubbleEvent(object source, EventArgs e)
{

if (e is CommandEventArgs)
{
CommandEventArgs ce = (CommandEventArgs)e;
if (ce.CommandName == "Click")
{
VoteCount = ce.CommandArgument.ToString();

OnClick(ce);

}

}
return true;
}

protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
Click(this, e);
}
}


protected override void CreateChildControls()
{

for (int i = 1; i < StarCount + 1; i++)
{
im = new ImageButton();

im.ImageUrl = MouseOut_ImagePath ;

im.Attributes.Add("onmouseover", "this.src='" + MouseOver_ImagePath + "';");
im.Attributes.Add("onmouseout", "this.src='" + MouseOut_ImagePath + "';");
im.AlternateText = i.ToString();
im.ID = "but" + i.ToString();
im.CommandName = "Click";
im.CommandArgument = i.ToString();
Controls.Add(im);

}
}
}
}

rating.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="rating.aspx.cs" Inherits="rating" %>
<%@ Register TagPrefix="MyBar" Namespace="MyVote" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>


</head>
<body>
<form id="form1" runat="server">
 <br />
<strong><span style="font-size: 14pt; font-family: Verdana">Rating Control</span></strong><br />
<br />
<br />
<MyBar:voting runat=server id="RatingCtrl" width="100px" StarCount="5" MouseOut_ImagePath="star.jpg" MouseOver_ImagePath="starover.jpg" OnClick="RatingCtrl_Click" >

</MyBar:voting>

<div id="kd">
 <br />
<br />
<br />
 <asp:Label ID="lbllabel" runat="server"></asp:Label> 

</div>


</form>
</body>
</html>

rating.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class rating : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}


protected void RatingCtrl_Click(object sender, EventArgs e)
{
lbllabel.Text ="Your Rate this : "+ RatingCtrl.VoteCount+ " Star";
}
}

...全文
141 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
gimse7en 2008-07-17
  • 打赏
  • 举报
回复
mark
一品梅 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 findcaiyzh 的回复:]
是要大家jf吗?
[/Quote]
是请大家回答问题的.
hongqi162 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 findcaiyzh 的回复:]
是要大家jf吗?
[/Quote]
宝_爸 2008-07-17
  • 打赏
  • 举报
回复
是要大家jf吗?
JeffChung 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 tiancaolin 的回复:]
不懂,关注下
[/Quote]
datahandler2 2008-07-17
  • 打赏
  • 举报
回复
不懂,关注下
一品梅 2008-07-17
  • 打赏
  • 举报
回复
千万不要沉下去,请看1,2楼的疑问,谢谢大家了,看看是不是等价于RaiseBubbleEvent实现,能写出相应等价代码出来么?不胜感激.
一品梅 2008-07-17
  • 打赏
  • 举报
回复
大师们帮帮忙解惑啊,分不够明日卯时再加.
一品梅 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bollton 的回复:]
OnBubbleEvent是控件内包含的控件向外层控件作事件冒泡
RaisePostBackEvent要写Javascript事件回发代码的
[/Quote]
是RaiseBubbleEvent
2楼所说,能仔细地看看并解释一下疑惑吗?
yigeming 2008-07-17
  • 打赏
  • 举报
回复
JF
bollton 2008-07-17
  • 打赏
  • 举报
回复
OnBubbleEvent是控件内包含的控件向外层控件作事件冒泡
RaisePostBackEvent要写Javascript事件回发代码的
jl_lsj 2008-07-17
  • 打赏
  • 举报
回复
不懂 帮顶
一品梅 2008-07-16
  • 打赏
  • 举报
回复
为什么不用RaiseBubbleEvent事件来传递到上层控件相同注册事件中呢,是不是等价于:
protected override bool OnBubbleEvent(object source, EventArgs e)
{

if (e is CommandEventArgs)
{
CommandEventArgs ce = (CommandEventArgs)e;
if (ce.CommandName == "Click")
{
VoteCount = ce.CommandArgument.ToString();

OnClick(ce);

}

}
return true;
}

protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
Click(this, e);
}
}

一品梅 2008-07-16
  • 打赏
  • 举报
回复
为什么不用RaiseBubbleEvent事件来传递到上层控件相同注册事件中呢,是不是等价于:
protected override bool OnBubbleEvent(object source, EventArgs e)
{

if (e is CommandEventArgs)
{
CommandEventArgs ce = (CommandEventArgs)e;
if (ce.CommandName == "Click")
{
VoteCount = ce.CommandArgument.ToString();

OnClick(ce);

}

}
return true;
}

protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
Click(this, e);
}
}

微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。 阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。 “微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。 购课请咨询qq2326321088

61,817

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧