HI Tim Mackey,
I must say that for educative than information to make sense.
Ok, here I am sharing the full code….
The ASPX file
<form id="Form1" method="post" runat="server">
<asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 8px; POSITION:
absolute; TOP: 8px" runat="server" AutoGenerateColumns="False" Width="500px">
<AlternatingItemStyle Font-Size="Smaller"
Font-Names="Verdana,Arial,Helvetica,sans-serif"
BackColor="#E5E5E5"></AlternatingItemStyle>
<ItemStyle Font-Size="Smaller"
Font-Names="Verdana,Arial,Helvetica,sans-serif"
BackColor="#F2F2F2"></ItemStyle>
<HeaderStyle Font-Size="Smaller"
Font-Names="Verdana,Arial,Helvetica,sans-serif" Font-Bold="True"
HorizontalAlign="Center" ForeColor="#3D3DB6"
BackColor="#E8EBFD"></HeaderStyle>
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="documentURL"
DataTextField="documentLabel" HeaderText="Developer
Guides"></asp:HyperLinkColumn>
<asp:BoundColumn DataField="documentFormat" ReadOnly="True"
HeaderText="Format"></asp:BoundColumn>
<asp:BoundColumn DataField="documentDate" ReadOnly="True"
HeaderText="Date"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="avgRating" ReadOnly="True"
HeaderText="Number_Rating"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Rating">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<asp:label id="lblStarRating" runat="server"></asp:label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="RatingCount" ReadOnly="True" HeaderText="Rating
Count">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="Rate It">
<ItemTemplate>
<P>
<asp:LinkButton id="LinkButton1"
runat="server">LinkButton</asp:LinkButton></P>
<asp

anel id="Panel1" runat="server" Height="212px" Visible="False">
<P>Rate it form.
</P>
<P>
<asp:Label id="Label1" runat="server">You have already rated
this..!</asp:Label></P>
<P>
<asp:RadioButtonList id="RadioButtonList1" runat="server">
<asp:ListItem Value="1">*</asp:ListItem>
<asp:ListItem Value="2">**</asp:ListItem>
<asp:ListItem Value="3">***</asp:ListItem>
<asp:ListItem Value="4">****</asp:ListItem>
<asp:ListItem Value="5">*****</asp:ListItem>
</asp:RadioButtonList>
<asp:TextBox id=TextBox2 runat="server" Text='<%#
DataBinder.Eval(Container,"DataItem.DocumentID") %>'>
</asp:TextBox></P>
<P>
<asp:TextBox id="TextBox1" runat="server" Width="208px"
Height="145px"></asp:TextBox></P>
<P>
<asp:Button id="Button1" runat="server" Text="Rate it"
CommandName="Rate_it"></asp:Button></P>
</asp

anel>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="documentID" HeaderText="document
ID"></asp:BoundColumn>
</Columns>
</asp:datagrid>
</form>
The VB Coding part
Imports System.Data.SqlClient
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.Panel
Imports System.Data.DataColumn
Public Class WebForm1
Inherits System.Web.UI.Page
'Globle Variables
Dim conPubs As SqlConnection
Dim DocumentID As Integer
#Region " Web Form Designer Generated Code "
#Region "On Page Load"
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim cmdSelect As SqlCommand
conPubs = New
SqlConnection("server=BGLAMDJVELU;Database=Pubs;Integrated security=sspi")
cmdSelect = New SqlCommand("select D.documentID, D.documentType,
D.documentLabel, D.documentURL, D.documentFormat, D.documentDate,
COALESCE(AVG(rating),0) AS avgRating, (COUNT(rating)) AS RatingCount from
tbl_documents as D left outer join tbl_Rating as R on R.documentID =
D.documentID group by D.documentID, D.documentLabel, D.documentType,
D.documentURL, D.documentFormat, D.documentDate", conPubs)
conPubs.Open()
DataGrid1.DataSource = cmdSelect.ExecuteReader()
DataGrid1.DataBind()
conPubs.Close()
End Sub
#End Region
#Region "Converting Date into Star"
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles
DataGrid1.ItemDataBound
If ((e.Item.ItemType <> ListItemType.Header) And (e.Item.ItemType <>
ListItemType.Footer)) Then
Dim MyLabel As Label
MyLabel = CType(e.Item.FindControl("lblStarRating"), Label)
Dim i As Int32
i = Convert.ToInt32(e.Item.Cells(3).Text)
DocumentID = Convert.ToInt32(e.Item.Cells(7).Text)
Dim j As Int32 = 0
MyLabel.Text = ""
If i <= 0 Then
MyLabel.Text = "Be the first to rate it!!"
End If
For j = 1 To i
'MyLabel.Text += "*" 'rating in "*"
MyLabel.Text += "<IMG id='IMG1' src='stars.gif' >"
Next
End If
End Sub
#End Region
Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.DataGridCommandEventArgs) Handles
DataGrid1.ItemCommand
' users IP address.
Dim UserIP As String
UserIP = (Request.UserHostAddress)
' Get the IP address from database
'Open the connection, and execute the query...
Dim intCount As Integer
Dim cmdvrfy As SqlCommand
cmdvrfy = New SqlCommand("Select * FROM tbl_rating Where DocumentID
=" & DocumentID & "AND ip ='" & UserIP & "';", conPubs)
conPubs.Open()
cmdvrfy.Connection = conPubs
cmdvrfy.CommandType = CommandType.Text
intCount = cmdvrfy.ExecuteScalar()
conPubs.Close()
If intCount = "0" Then '127.0.0.1
'Opens the Panel for the user !
Dim MyPanel As Panel
MyPanel = (e.Item.FindControl("Panel1"))
MyPanel.Visible = True
Else
MsgBox("You have already reated this !!!!")
End If
End Sub
End Class
Thx The main purpose is to create a 5 star rating system inside a table that
displays the article name….
Let know your thoughts.
Hey you have nice blog…
Thx
JK