<html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title></title> <style type="text/css"> .ButtonStyle { background-color: #9EBEDE; color: Black; font-family: verdana; font-size: 8pt; } .BarStyle { background-color: #996633; } .TablePollResultFoot { background-color: #B0C4DE; font-weight: bold; height:30px; font-size: 13px; } .gridview { border: solid 1px #CCCCCC; width: 100%; } </style> </head> <body> <form id="form1" runat="server"> <div> <table style="border:1px solid #9EBEDE" align="center" cellpadding="0" cellspacing="0" width="100%"> <tr> <td align="left"> <b><span style="color:#FF6600"> Online Poll Example with XML </span> </b> </td> </tr> <tr> <td height="10px"></td> </tr> <tr> <td > <b>which one is best browser?</b> </td> </tr> <tr> <td height="5px"></td> </tr> <tr> <td align="left"> <asp:RadioButtonList ID="radVote" runat="server"> <asp:ListItem>Mozilla</asp:ListItem> <asp:ListItem>Internet Explorer</asp:ListItem> <asp:ListItem>Google Chrome</asp:ListItem> </asp:RadioButtonList> </td> </tr> <tr> <td></td> </tr> <tr> <td> <asp:Button ID="btnVote" runat="server" Text="Vote" onclick="btnVote_Click" CssClass="ButtonStyle" /> <asp:Button ID="btnResult" runat="server" Text="Reult" CssClass="ButtonStyle" onclick="btnResult_Click" /> <br /> <asp:Label ID="lblStatus" runat="server" /> </td> </tr> <tr> <td align="left"> <asp:GridView runat="server" ID="gvResult" BackColor="White" CellPadding="4" EnableModelValidation="True" AutoGenerateColumns="false" onrowdatabound="gvResult_RowDataBound" EmptyDataText="No one submit votes"> <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" /> <HeaderStyle BackColor="#4682B4" Font-Bold="True" ForeColor="#FFFFCC" /> <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" /> <Columns> <asp:TemplateField HeaderText="Options" HeaderStyle-HorizontalAlign="Left" ItemStyle-Width="20%"> <ItemTemplate> <asp:Label ID="lblOptions" runat="server" Text='<%#Bind("OPTION_NAME") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Votes" HeaderStyle-HorizontalAlign="Left" ItemStyle-Width="10%"> <ItemTemplate> <asp:Label ID="lblVotes" runat="server" Text='<%#Bind("VOTES") %>' ></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="%" HeaderStyle-HorizontalAlign="Left" ItemStyle-Width="15%"> <ItemTemplate> <asp:Label ID="lblpercentage" runat="server" Text='<%#Bind("PERCENTAGE","{0:f2}") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Bar" HeaderStyle-HorizontalAlign="Left" ItemStyle-Width="55%" > <ItemTemplate> <table runat="server" id="tblBar"> <tr class="BarStyle"><td height="8px"></td></tr> </table> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </td> </tr> </table> </div> </form> </body> </html> |
<?xml version="1.0" encoding="utf-8"?> <VotesInformation> </VotesInformation> |
using System.Xml; |
using System.Drawing; |
int Count = 0; protected void Page_Load(object sender, EventArgs e) { } protected void btnVote_Click(object sender, EventArgs e) { if (radVote.SelectedItem != null) { InsertVotes(radVote.SelectedItem.ToString()); } else { lblStatus.ForeColor = Color.Red; lblStatus.Text = "Please select at least one option to vote for poll"; } } protected void InsertVotes(string theVote) { try { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(Server.MapPath("Votes.xml")); XmlElement parentelement = xmldoc.CreateElement("Vote"); XmlElement votechoice = xmldoc.CreateElement("Choice"); votechoice.InnerText = theVote; parentelement.AppendChild(votechoice); xmldoc.DocumentElement.AppendChild(parentelement); xmldoc.Save(Server.MapPath("Votes.xml")); lblStatus.ForeColor = Color.Green; lblStatus.Text = "Thank you for your vote."; } catch { lblStatus.Text = "Sorry, unable to process request. Please try again."; } } protected void readXML() { int mCount=0; int iCount=0; int gCount=0; XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("Votes.xml")); DataSet ds = new DataSet(); ds.ReadXml(xmlreader); xmlreader.Close(); if (ds.Tables.Count>0) { int dscount = ds.Tables[0].Rows.Count; for (int i = 0; i < dscount; i++) { if (ds.Tables[0].Rows[i][0].ToString() == "Mozilla") mCount++; else if (ds.Tables[0].Rows[i][0].ToString() == "Internet Explorer") iCount++; else if (ds.Tables[0].Rows[i][0].ToString() == "Google Chrome") gCount++; } double theTotal; theTotal = mCount + iCount + gCount; double mPercent; double oPercent; double gPercent; mPercent = (mCount / theTotal) * 100; oPercent = (iCount / theTotal) * 100; gPercent = (gCount / theTotal) * 100; double totalpercentage = mPercent + oPercent + gPercent; string[] votescount = { mCount.ToString(), iCount.ToString(), gCount.ToString() }; string[] array = { mPercent.ToString(), oPercent.ToString(), gPercent.ToString() }; DataTable dt = new DataTable(); dt.Columns.Add("OPTION_NAME"); dt.Columns.Add("VOTES"); dt.Columns.Add("PERCENTAGE"); int count = radVote.Items.Count; Count = count + 1; for (int i = 0; i < count; i++) { dt.Rows.Add(); dt.Rows[i]["OPTION_NAME"] = radVote.Items[i].ToString(); dt.Rows[i]["VOTES"] = votescount[i]; dt.Rows[i]["PERCENTAGE"] = array[i]; } dt.Rows.Add("Total", theTotal, totalpercentage); gvResult.DataSource = dt; gvResult.DataBind(); } else { gvResult.DataSource = null; gvResult.DataBind(); } } protected void butResults_Click(object sender, EventArgs e) { readXML(); } int cnt = 0; protected void gvResult_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { cnt++; Label lblpercent = (Label)e.Row.FindControl("lblpercentage"); HtmlTable tblpercent = (HtmlTable)e.Row.FindControl("tblBar"); tblpercent.Width = lblpercent.Text+"%"; if (lblpercent.Text == "0") { tblpercent.Visible = false; } if (cnt == Count) { e.Row.CssClass = "TablePollResultFoot"; } } foreach (TableCell tc in e.Row.Cells) { tc.Attributes["style"] = "border-color:#CCCCCC"; } } |
|
If you enjoyed this post, please support the blog below. It's FREE! Get the latest Asp.net, C#.net, VB.NET, jQuery, Plugins & Code Snippets for FREE by subscribing to our Facebook, Twitter, RSS feed, or by email. |
|||
Subscribe by RSS
Subscribe by Email
|
|||
|
|


Subscribe by RSS
Subscribe by Email
12 comments :
nice post but i need to show graph without using XML and record will be bind from the database and to show graph on the percentage of vote.
http://soft-engineering.blogspot.com
this code not working
error in web.config i m using vs2010
hi i did this example in vs 2008 if you open this application with vs 2010 it will ask you to convert higher version so at that time version problem will arise to avoid that problem you should create new website in vs2010 and copy and paste the aspx page and code behind code in your website and use your own website web.config file and follow my instructions it will work for you
it is not working in online sir did u give suggestion?
hi madhan for me it's working fine r u getting any error after deploy the application
Hi Suresh,
I keep getting the "Sorry, unable to process request. Please try again." error and it's not inserting my vote into the xml file. Is there something I can do to get it to work?
Thanks - Jude
Thanks for Sharing .. Nice Post.... May i know how to prevent a particular User voting again and again?
eg -:only prevent using Cookies.(Without Login )
add more namespace
using System.Data;
using System.Web.UI.HtmlControls;
then it is work perfectly.
thanks
Great Post man keep rocks.....
greatt Post....
but if i need to store data in sql server then how to do this can you give example
This blog is definitely awesome as well as informative. I have found a bunch of useful things out of it. Thanks a lot!
thnks