65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET 评分控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.05/5 (33投票s)

2009年4月13日

CPOL
viewsIcon

116521

downloadIcon

3857

一个 ASP.NET 评分控件

引言

互联网上有很多免费的评分控件,但我没有找到任何符合这些功能的控件

  • UpdatePanelGridView中运行良好
  • 易于自定义 UI 和行为
  • 自动生成 JavaScript(不需要外部 JS 文件)

因此,我决定根据我的需求编写一个 ASP.NET 自定义控件。

Using the Code

如何使用此控件?

  1. 添加对控件的引用,
  2. <%@ Page Language="C#" AutoEventWireup="true" 
    	Codebehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
    
    <%@ Register Namespace="ASPnetRater" Assembly="ASPnetRater" TagPrefix="cc" %>
    <!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">
            <div>
                <cc:Rater ID="Rater1" runat="server" 
    		ImageOff="/assets/images/rating_grey_star.gif"
                    Value="3" MaxValue="5" ImageOn="/assets/images/rating_red_star.gif"
                    ToolTip="I'm a rater" OnCommand="Rater1_Command" 
    		ImageOver="/assets/images/rating_yellow_star.gif"></cc:Rater>
            </div>
        </form>
    </body>
    </html>	 

这是结果。

正常状态

悬停状态

关注点

如果您希望控件在UpdatePanel中运行良好,请使控件成为UpdatePanel的触发器

ScriptManager1.RegisterAsyncPostBackControl(Rater1);

历史

  • 2009年4月8日:初稿
  • 2010年4月15日:更新
    • 修复了回发时的一个错误,正如 yuyejian 报告的那样
    • 使用Enabled 属性启用/禁用控件
    • 图像的 URL 支持类似于“~/assets/...”的 URL
  • 2010年6月29日:更新源代码
    • 修复了 maorray 报告的错误(未将评分器的值保存/加载到ControlState
  • 2011年4月18日:更新源代码
    • 添加了CommandName 属性
    • OnCommand()中调用base.RaiseBubbleEvent()
    • 此更新将帮助父控件,例如GridViewDataList 等,捕获OnItemCommand 事件。
© . All rights reserved.