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
"MSNEWS" <xx@nospam.com> wrote in message
news:%2****************@tk2msftngp13.phx.gbl...
Hi
I have a datagrid with 8 Columns, columns called Monday - Sunday, and a
column called TOTAL. The Monday - Sunday columns are template columns
with
a textbox inside. The TOTAL column is a label column.
When the user enteres numbers into the Monday - Sunday columns I want
TOTAL
to add up all the columns on the current row.
I guess this needs to be done with client side vbscript? But I have no
clue
where to start.
Also could somebody give me hints on how to validate by Monday - Sunday
columns so that they can only enter numbers between 0 and 24.
Thanks