.NET 使用 XML 的投票






1.67/5 (2投票s)
可定制的 .NET 投票控件。
引言
这是一个用于在网站上进行用户投票的简单用户控件。该控件由 XML 文件驱动。 许多可用投票控件中常用的 SQL Server 和 Flash 并非必需。 但是,代码可以修改为从任何数据源获取数据。 该控件有一些控制显示的属性(颜色、字体等)。
要求
.NET Framework 2.0 和 AJAX 扩展 1.0。
该控件使用 System.IO
从 XML 文件中读取和写入。 因此,.NET 进程需要对应用程序目录具有读/写权限。 要确定需要具有权限的 .NET 用户,请下载此 zip 文件 (0.2 KB),将文件 identity.aspx 复制到应用程序文件夹中,并浏览到该文件。 这将显示当前的 .NET 用户。 要设置应用程序文件夹的读/写权限(XP Professional),请右键单击该文件夹,选择“属性”|“安全”,单击“添加”,在对象名称下输入 .NET 用户,然后单击“检查名称”。 找到用户后,单击“确定”。 在用户的“权限”下,确保除了“读取”和“执行”之外,还选中了“修改/写入”。
使用代码
该控件包含几个标签。 lblTitle
显示投票/调查问题。 如果以前从计算机提交了条目,lblWarning
会显示警告。 可以根据布尔属性 DisplayWarning
显示或隐藏警告消息。 投票选项显示在 RadioButtonList
中。 PlaceHolder
控件根据 XML 文件中指定的选项数量动态加载标签。 RadioButtonList
和 PlaceHolder
放置在 UpdatePanel 中,以防止页面在回发时刷新。
在加载时,该控件检查用户的计算机上是否存在 cookie。(设置 cookie 的方法 SetCookie
在源代码中被注释掉了。 如果您只想允许来自一台计算机的一个条目,请取消注释它。)如果存在,则会显示图形以及可选的警告消息。 唯一的必需属性是 Key
,即 XML 文件名。 投票/调查问题在属性 Title
中设置。 控件的宽度可以在 Width
属性中指定。 Column1Width
和 Column2Width
指定显示选项和图形的两个表格单元格的宽度。
下面显示了一个示例 XML 文件
<?xml version="1.0" standalone="yes"?>
<poll>
<choice>
<option>Every Day</option>
<count>2</count>
</choice>
<choice>
<option>Once a Week</option>
<count>6</count>
</choice>
<choice>
<option>Once a Month</option>
<count>4</count>
</choice>
<choice>
<option>Rarely</option>
<count>2</count>
</choice>
</poll>
这是该控件的屏幕截图
这是该控件显示的图形的屏幕截图
每个选项的计数都保存在 RadioButtonList
项目的 Value
属性中。 在使用 ListItem
的 Value
属性时,我遇到了一个之前没有注意到的奇怪行为。 如果多个 ListItem
具有相同的值,则 SelectedIndex
将返回这些公共项目的最低索引。 我必须使用行标识符来维护值才能解决此问题。 我不知道这是否是解决此问题的简单方法。