HTML (aspx)
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="Mon">
<ItemTemplate>
<asp:TextBox id="TextBox1" runat="server" Width="30px" MaxLength="2"
AutoPostBack="False"></asp:TextBox><BR>
<asp:CompareValidator id="CompareValidator1" runat="server"
ControlToValidate="TextBox1" Operator="DataTypeCheck" Type="Integer"
Font-Size="XX-Small">Numbers Only!</asp:CompareValidator><BR>
<asp:RangeValidator id="RangeValidator1" runat="server"
ControlToValidate="TextBox1" Font-Size="XX-Small" MaximumValue="24"
MinimumValue="0">Must be between 0 - 24</asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Tues">
<ItemTemplate>
<asp:TextBox id="Textbox2" runat="server" AutoPostBack="False"
MaxLength="2" Width="30px"></asp:TextBox><br>
<asp:CompareValidator id="Comparevalidator2" runat="server"
ControlToValidate="Textbox2" Operator="DataTypeCheck" Type="Integer"
Font-Size="XX-Small">Numbers Only!</asp:CompareValidator><br>
<asp:RangeValidator id="Rangevalidator2" runat="server"
ControlToValidate="Textbox2" Font-Size="XX-Small" MaximumValue="24"
MinimumValue="0">Must be between 0 - 24</asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Wed">
<ItemTemplate>
<asp:TextBox id="Textbox3" runat="server" AutoPostBack="False"
MaxLength="2" Width="30px"></asp:TextBox><br>
<asp:CompareValidator id="Comparevalidator3" runat="server"
ControlToValidate="Textbox3" Operator="DataTypeCheck" Type="Integer"
Font-Size="XX-Small">Numbers Only!</asp:CompareValidator><br>
<asp:RangeValidator id="Rangevalidator3" runat="server"
ControlToValidate="Textbox3" Font-Size="XX-Small" MaximumValue="24"
MinimumValue="0">Must be between 0 - 24</asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Thurs">
<ItemTemplate>
<asp:TextBox id="Textbox4" runat="server" AutoPostBack="False"
MaxLength="2" Width="30px"></asp:TextBox><br>
<asp:CompareValidator id="Comparevalidator4" runat="server"
ControlToValidate="Textbox4" Operator="DataTypeCheck" Type="Integer"
Font-Size="XX-Small">Numbers Only!</asp:CompareValidator><br>
<asp:RangeValidator id="Rangevalidator4" runat="server"
ControlToValidate="Textbox4" Font-Size="XX-Small" MaximumValue="24"
MinimumValue="0">Must be between 0 - 24</asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Fri">
<ItemTemplate>
<asp:TextBox id="Textbox5" runat="server" AutoPostBack="False"
MaxLength="2" Width="30px"></asp:TextBox><br>
<asp:CompareValidator id="Comparevalidator5" runat="server"
ControlToValidate="Textbox5" Operator="DataTypeCheck" Type="Integer"
Font-Size="XX-Small">Numbers Only!</asp:CompareValidator><br>
<asp:RangeValidator id="Rangevalidator5" runat="server"
ControlToValidate="Textbox5" Font-Size="XX-Small" MaximumValue="24"
MinimumValue="0">Must be between 0 - 24</asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Sat">
<ItemTemplate>
<asp:TextBox id="Textbox6" runat="server" AutoPostBack="False"
MaxLength="2" Width="30px"></asp:TextBox><br>
<asp:CompareValidator id="Comparevalidator6" runat="server"
ControlToValidate="Textbox6" Operator="DataTypeCheck" Type="Integer"
Font-Size="XX-Small">Numbers Only!</asp:CompareValidator><br>
<asp:RangeValidator id="Rangevalidator6" runat="server"
ControlToValidate="Textbox6" Font-Size="XX-Small" MaximumValue="24"
MinimumValue="0">Must be between 0 - 24</asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Sun">
<ItemTemplate>
<asp:TextBox id="Textbox7" runat="server" AutoPostBack="False"
MaxLength="2" Width="30px"></asp:TextBox><br>
<asp:CompareValidator id="Comparevalidator7" runat="server"
ControlToValidate="Textbox7" Operator="DataTypeCheck" Type="Integer"
Font-Size="XX-Small">Numbers Only!</asp:CompareValidator><br>
<asp:RangeValidator id="Rangevalidator7" runat="server"
ControlToValidate="Textbox7" Font-Size="XX-Small" MaximumValue="24"
MinimumValue="0">Must be between 0 - 24</asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Total">
<ItemTemplate>
<asp:Label id="lblTotal" runat="server">0</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn Text="Sum" ButtonType="PushButton"
CommandName="SUM"></asp:ButtonColumn>
</Columns>
</asp:datagrid>
Codebehind (vb):
Dim ds As New DataSet("ds")
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
If Not IsPostBack() Then
fillGrid()
End If
End Sub
Private Sub fillGrid()
Dim conn As New OleDbConnection(Session("UserDBConnString"))
Dim adpt As New OleDbDataAdapter("SELECT * FROM DUAL WHERE ROWNUM <=
1", conn) 'gets me a row quickly from Oracle!!
conn.Open()
adpt.Fill(ds)
DataGrid1.DataSource = ds.Tables(0).DefaultView
DataGrid1.DataBind()
conn.Close()
End Sub
Private Sub calcTotal(ByVal intRow As Integer)
Dim dgi As DataGridItem = DataGrid1.Items(intRow)
Dim intSum As Integer = 0
Dim ctrl As Control
Dim tb As TextBox
Dim i As Integer = 0
For i = 0 To dgi.Cells.Count - 1
For Each ctrl In dgi.Cells(i).Controls
If InStr(LCase(ctrl.GetType.ToString), "textbox") <> 0 Then
tb = CType(ctrl, TextBox)
If Not tb.Text = "" Then
intSum += CInt(tb.Text)
End If
End If
Next ctrl
Next i
Dim lbl As Label = dgi.FindControl("lblTotal")
lbl.Text = CStr(intSum)
End Sub
Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.DataGridCommandEventArgs) Handles
DataGrid1.ItemCommand
If e.CommandName = "SUM" Then
calcTotal(e.Item.ItemIndex)
End If
End Sub