ASP.Net 投票服务器控件






4.31/5 (20投票s)
2006年6月10日
2分钟阅读

145834

4994
一个用于对您的网站用户进行投票的自定义服务器控件。
Title: Site Poll Control Author: Michael Eccleston Email: mike@ecclestonsoftware.com Environment: VB.Net, ASP.Net Keywords: Control, Database, Polls, Triggers, Stored Procedures Level: Intermediate Description: ASP.Net Server Control Section ASP.Net SubSection Controls
引言
我最近参与的一个项目需要向网站访问者展示一个投票问题。为了更多地了解从 CompositeControl 继承的自定义服务器控件,我生成了一个自定义服务器控件来提供此功能。创建此控件的工作相当简单,我将该控件提供给任何可能在其项目中使用它的人。投票控件允许您将控件放置在您的web表单中,设置几个属性,并将可用的答案和当前的答案计数添加到 PollAnswers 集合中,您可以在页面上获得上述结果。 将 PollControl.dll 添加到您的工具箱,然后将控件放置在您的表单上。 控件的外观由 CSS 样式表类控制。
该控件设计使用 Sql Server Express 数据库作为后端数据存储。 数据库由三个表组成:PollQuestions、PollAnswers 和 PollResults。 在 PollResults 表的插入和删除操作上有触发器,可以自动维护投票结果。 还有一个用于插入或删除投票结果的存储过程。 除了最初设置控件以在您的表单上显示它之外,您只需要在 CastVote 事件中调用 InsertResult 存储过程即可。
如果您有兴趣了解 SQL Server Express 数据库中的触发器和存储过程,代码源文件可能会为您提供一些学习材料。 这些信息相当容易理解,并且可能为您自己的触发器和存储过程提供一个起点。 我提供了所有数据库脚本,以便您可以复制数据库,并且我提供了调用存储过程的源代码。
使用控件
属性 | |
CanVote |
如果为 True,则在投票模式中呈现问题和答案,并附有“投票”按钮。 如果为 False,则显示结果,如上所示。 |
ShowPrecentages |
如果为 True,则在结果中显示投票百分比。 如果为 False,则在结果中显示投票计数。 |
PollQuestion |
向访问者展示的投票问题。 |
CSSCaption |
用于 PollControl 标题和问题的样式表类。 |
CSSPollClass |
用于 PollControl 的样式表类。 |
ImagesFolder |
用于结果条的图像的文件夹位置。 |
VoteCaption |
您希望放在投票计数前面的文本。 |
方法 | |
AddPollAnswer() |
AddPollAnswer( PollId, AnswerId, AnswerText, AnswerCount ) |
事件 | 当控件处于“投票视图”时,单击“投票”按钮时会引发 CastVote 事件 |
CastVote() |
CastVote( PollId, AnswerId, MemberId ) |
代码隐藏中的示例代码如下所示。 |
示例代码
// // The control above was populated with the code shown below. If Not Page.IsPostBack then With PollControl1 .CanVote = False .ShowPercentage = True .PollQuestion = "What is your poll question ?" .CSSCaption = "PollCaption" .CSSPollClass = "PollBack" .ImagesFolder = "Images/" .VoteCaption = "Votes Cast :" ' Loop to populate the PollAnswer Collection .AddPollAnswer( PollId, AnswerId, AnswerText, AnswerCount ) ' End With End If
关注点
此控件的设计提供了自定义服务器控件以及 SQL Server Express 触发器和存储过程的学习经验。