Hi,
I use radgrid to edit data with sqldatasource. It works properly on IE7 but not firefox 3.0.10 . When i click edit button an error occure:
The product that i use is "Radcontrols for asp.net Q7 2007"
ProgramPage.aspx
ProgramPage.aspx.vb
BR,
Kenghot
I use radgrid to edit data with sqldatasource. It works properly on IE7 but not firefox 3.0.10 . When i click edit button an error occure:
The product that i use is "Radcontrols for asp.net Q7 2007"
Server Error in '/' Application. |
Input string was not in a correct format. |
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. |
Exception Details: System.FormatException: Input string was not in a correct format. |
Source Error: |
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
Stack Trace: |
[FormatException: Input string was not in a correct format.] |
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +7469351 |
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119 |
System.Web.UI.WebControls.ImageButton.LoadPostData(String postDataKey, NameValueCollection postCollection) +163 |
System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +14 |
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +693 |
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1743 |
Version Information: Microsoft .NET Framework Version:2.0.50727.3082; ASP.NET Version:2.0.50727.3082 |
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="ProgramPage.aspx.vb" Inherits="ProgramPage" title="KiDO : Program maintenance" %> |
<%@ MasterType VirtualPath="~/MasterPage.master" %> |
<%@ Register Assembly="RadComboBox.Net2" Namespace="Telerik.WebControls" TagPrefix="radC" %> |
<%@ Register Assembly="RadInput.Net2" Namespace="Telerik.WebControls" TagPrefix="radI" %> |
<%@ Register Assembly="RadGrid.Net2" Namespace="Telerik.WebControls" TagPrefix="radG" %> |
<%@ Register Assembly="RadEditor.Net2" Namespace="Telerik.WebControls" TagPrefix="radE" %> |
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> |
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:cnKido %>" |
SelectCommand="SELECT * FROM [Program]" |
UpdateCommand="UPDATE Program SET ProgramCode=@ProgramCode ,ProgramName=@ProgramName ,ProgramDesc=@ProgramDesc ,IsCanceled=@IsCanceled ,UpdateUser=@UpdateUser ,UpdateDT=@UpdateDT where ProgramKey=@ProgramKey " |
InsertCommand="INSERT INTO Program( ProgramCode,ProgramName,ProgramDesc,IsCanceled,AddUser,UpdateUser,AddDT,UpdateDT) values (@ProgramCode,@ProgramName,@ProgramDesc,@IsCanceled,@AddUser,@UpdateUser,@AddDT,@UpdateDT)"> |
<UpdateParameters> |
<asp:Parameter Name="ProgramKey" Type="Int64" /> |
<asp:Parameter Name="ProgramCode" Type="String" /> |
<asp:Parameter Name="ProgramName" Type="String" /> |
<asp:Parameter Name="ProgramDesc" Type="String" /> |
<asp:Parameter Name="IsCanceled" Type="Boolean" /> |
<asp:Parameter Name="UpdateUser" Type="String" /> |
<asp:Parameter Name="UpdateDT" Type="datetime" /> |
</UpdateParameters> |
<InsertParameters> |
<asp:Parameter Name="ProgramCode" Type="String" /> |
<asp:Parameter Name="ProgramName" Type="String" /> |
<asp:Parameter Name="ProgramDesc" Type="String" /> |
<asp:Parameter Name="IsCanceled" Type="Boolean" /> |
<asp:Parameter Name="AddUser" Type="String" /> |
<asp:Parameter Name="UpdateUser" Type="String" /> |
<asp:Parameter Name="AddDT" Type="datetime" /> |
<asp:Parameter Name="UpdateDT" Type="datetime" /> |
</InsertParameters> |
</asp:SqlDataSource> |
<br /> |
<radG:RadGrid ID="RadGrid1" runat="server" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" |
AllowAutomaticUpdates="True" AllowMultiRowSelection="True" |
AllowPaging="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" |
EnableAJAX="True" EnableAJAXLoadingTemplate="True" LoadingTemplateTransparency="50" |
PageSize="14" ShowStatusBar="True" Width="97%" GridLines="None" AllowSorting="True" AllowFilteringByColumn="True"> |
<PagerStyle Mode="Slider" /> |
<ClientSettings> |
<Selecting AllowRowSelect="True" /> |
</ClientSettings> |
<MasterTableView CommandItemDisplay="Top" DataKeyNames="ProgramKey" |
DataSourceID="SqlDataSource1" Width="100%"> |
<CommandItemTemplate> |
<div style="padding: 10px 0px;"> |
|
<asp:LinkButton ID="btnCancel" runat="server" CausesValidation="false" CommandName="CancelAll" |
Visible='<%# RadGrid1.EditIndexes.Count > 0 Or RadGrid1.MasterTableView.IsItemInserted %>'><img style="border:0px;vertical-align:middle;" alt="" src="images/DataEditing/Img/Cancel.gif" /> Cancel editing</asp:LinkButton> |
|
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="InitInsert" Visible='<%# Not RadGrid1.MasterTableView.IsItemInserted %>'><img style="border:0px;vertical-align:middle;" alt="" src="images/DataEditing/Img/AddRecord.gif" /> Add new </asp:LinkButton> |
|
<asp:LinkButton ID="LinkButton4" runat="server" CommandName="RebindGrid"><img style="border:0px;vertical-align:middle;" alt="" src="images/DataEditing/Img/Refresh.gif" /> Refresh list</asp:LinkButton> |
</div> |
</CommandItemTemplate> |
<Columns> |
<radG:GridEditCommandColumn ButtonType="ImageButton" CancelImageUrl="images/DataEditing/Img/Cancel.gif" |
EditImageUrl="images/DataEditing/Img/Edit.gif" InsertImageUrl="images/DataEditing/Img/Insert.gif" UpdateImageUrl="images/DataEditing/Img/Update.gif"> |
<HeaderStyle Width="30px" /> |
</radG:GridEditCommandColumn> |
<radG:GridTemplateColumn DataField="IsCanceled" DataType="System.Boolean" HeaderText="Cancel" |
SortExpression="IsCanceled" UniqueName="IsCanceled"> |
<ItemTemplate> |
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("IsCanceled") %>' Enabled="False" /> |
</ItemTemplate> |
</radG:GridTemplateColumn> |
<radG:GridBoundColumn DataField="ProgramCode" HeaderText="Code" SortExpression="ProgramCode" |
UniqueName="ProgramCode"> |
</radG:GridBoundColumn> |
<radG:GridBoundColumn DataField="ProgramName" HeaderText="Program Name" SortExpression="ProgramName" |
UniqueName="ProgramName"> |
</radG:GridBoundColumn> |
<radG:GridBoundColumn DataField="ProgramDesc" HeaderText="Description" SortExpression="ProgramDesc" |
UniqueName="ProgramDesc"> |
</radG:GridBoundColumn> |
</Columns> |
<EditFormSettings EditFormType="Template"> |
<FormTemplate> |
<asp:Label ID="lblKey" runat="server" Text='<%# Eval("ProgramKey") %>'></asp:Label> |
<table style="width: 100%"> |
<tr> |
<td style="text-align: center;"> |
<table border="0" cellpadding="0" cellspacing="0" class="LoginOuterBox" style="width: 80%"> |
<tr> |
<td style="text-align: right"> |
</td> |
<td style="text-align: left;"> |
<asp:CheckBox ID="chbIsCanceled" runat="server" Checked='<%# ScriptHelper.DBBoolean(Eval("IsCanceled")) %>' |
Text="Cancel" /></td> |
</tr> |
<tr><td style="text-align: right"> |
<asp:Label ID="lblProgramCode" runat="server" Text="Program Code"></asp:Label></td> |
<td style="text-align: left;"> |
<asp:TextBox ID="txbProgramCode" runat="server" MaxLength="50" Text='<%# Bind("ProgramCode") %>' Width="336px"></asp:TextBox> |
</td></tr> |
<tr><td style="text-align: right; height: 38px;"> |
<asp:Label ID="lblProgramName" runat="server" Text="Program Name"></asp:Label></td> |
<td style="text-align: left; height: 38px;"> |
<asp:TextBox ID="txbProgramName" runat="server" MaxLength="100" Text='<%# Bind("ProgramName") %>' Width="336px"></asp:TextBox> |
</td></tr> |
<tr><td style="text-align: right; vertical-align: top;"> |
<asp:Label ID="lblProgramDesc" runat="server" Text="Description"></asp:Label></td> |
<td style="text-align: left;"> |
<asp:TextBox ID="txbProgramDesc" runat="server" MaxLength="200" Text='<%# Bind("ProgramDesc") %>' Width="336px" Height="112px" TextMode="MultiLine"></asp:TextBox> |
</td></tr> |
<tr> |
<td style="text-align: right"> |
</td> |
<td style="text-align: left"> |
<asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="false" CommandName='<%# IIf((TypeOf(Container) is GridEditFormInsertItem), "PerformInsert", "Update")%>'> |
<img style="border:0px;vertical-align:middle;" alt="" src="images/DataEditing/Img/Update.gif" /> Save </asp:LinkButton> |
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" CommandName="Cancel"> |
<img style="border:0px;vertical-align:middle;" alt="" src="images/DataEditing/Img/Cancel.gif" /> Cancel </asp:LinkButton> |
</td> |
</tr> |
</table> |
</td> |
</tr> |
</table> |
</FormTemplate> |
<EditColumn UniqueName="EditCommandColumn1"> |
</EditColumn> |
</EditFormSettings> |
<RowIndicatorColumn Visible="False"> |
<HeaderStyle Width="20px" /> |
</RowIndicatorColumn> |
<ExpandCollapseColumn Resizable="False" Visible="False"> |
<HeaderStyle Width="20px" /> |
</ExpandCollapseColumn> |
</MasterTableView> |
<ExportSettings> |
<Pdf PageBottomMargin="" PageFooterMargin="" PageHeaderMargin="" PageHeight="11in" |
PageLeftMargin="" PageRightMargin="" PageTopMargin="" PageWidth="8.5in" /> |
</ExportSettings> |
</radG:RadGrid> |
</asp:Content> |
Imports ScriptHelper |
Imports System.Data |
Partial Class ProgramPage |
Inherits System.Web.UI.Page |
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load |
Me.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = "" |
If Not Page.IsPostBack Then |
If Not (User.IsInRole("Admit") Or User.IsInRole("HQ")) Then |
Response.Redirect("./default.aspx") |
End If |
End If |
End Sub |
Private Sub SetSQlValue(ByVal ParameterName As String, ByVal ParameterValue As Object, ByVal IsADD As Boolean) |
If IsADD Then |
SqlDataSource1.InsertParameters(ParameterName).DefaultValue = ParameterValue |
Else |
SqlDataSource1.UpdateParameters(ParameterName).DefaultValue = ParameterValue |
End If |
End Sub |
Protected Sub RadGrid1_ItemCommand(ByVal source As Object, ByVal e As Telerik.WebControls.GridCommandEventArgs) Handles RadGrid1.ItemCommand |
Select Case e.CommandName |
Case "Update" |
If Not CheckValid(e, False) Then |
e.Canceled = True |
Exit Sub |
End If |
SqlDataSource1.Update() |
Case Telerik.WebControls.RadGrid.PerformInsertCommandName |
If Not CheckValid(e, True) Then |
e.Canceled = True |
Exit Sub |
End If |
SqlDataSource1.Update() |
Case Telerik.WebControls.RadGrid.InitInsertCommandName |
RadGrid1.MasterTableView.ClearEditItems() |
e.Canceled = True |
Dim newValues As System.Collections.Specialized.ListDictionary = New System.Collections.Specialized.ListDictionary() |
newValues("IsCanceled") = False |
e.Item.OwnerTableView.InsertItem(newValues) |
Case Telerik.WebControls.RadGrid.RebindGridCommandName |
RadGrid1.MasterTableView.ClearEditItems() |
For Each item As Telerik.WebControls.GridDataItem In RadGrid1.MasterTableView.Items |
item.OwnerTableView.IsItemInserted = False |
Next |
Case Telerik.WebControls.RadGrid.EditCommandName |
RadGrid1.MasterTableView.ClearEditItems() |
End Select |
End Sub |
Private Function CheckValid(ByVal e As Telerik.WebControls.GridCommandEventArgs, ByVal IsAdd As Boolean) As Boolean |
Dim strErr As String = "" |
Dim lbl As Label |
lbl = e.Item.FindControl("lblProgramCode") |
Dim txbProgramCode As TextBox = e.Item.FindControl("txbProgramCode") |
If txbProgramCode.Text.Trim = "" Then |
strErr &= "- Invalid " & lbl.Text & vbCrLf |
End If |
lbl = e.Item.FindControl("lblProgramName") |
Dim txbProgramName As TextBox = e.Item.FindControl("txbProgramName") |
If txbProgramName.Text.Trim = "" Then |
strErr &= "- Invalid " & lbl.Text & vbCrLf |
End If |
lbl = e.Item.FindControl("lblProgramDesc") |
Dim txbProgramDesc As TextBox = e.Item.FindControl("txbProgramDesc") |
If txbProgramDesc.Text.Trim = "" Then |
strErr &= "- Invalid " & lbl.Text & vbCrLf |
End If |
If strErr <> "" Then |
DisplayMessage(strErr, RadGrid1) |
Return False |
End If |
Master.MainData.ClearAllValue() |
Master.MainData.AddSqlCommand("select * from Program where ProgramCode=@ProgramCode") |
Master.MainData.AddParameter("@ProgramCode", txbProgramCode.Text) |
Dim ds As DataSet = Master.MainData.GetDataset() |
Dim lblKey As Label = e.Item.FindControl("lblKey") |
If IsAdd Then |
If ds.Tables(0).Rows.Count > 0 Then |
DisplayMessage("Code '" & txbProgramCode.Text & "' is already exist!", RadGrid1) |
Return False |
End If |
Else |
If ds.Tables(0).Rows.Count > 0 AndAlso ds.Tables(0).Rows(0)("ProgramKey") <> Convert.ToInt64(lblKey.Text) Then |
DisplayMessage("Code '" & txbProgramCode.Text & "' is already exist!", RadGrid1) |
Return False |
End If |
End If |
Dim chbIsCanceled As CheckBox = e.Item.FindControl("chbIsCanceled") |
SetSQlValue("ProgramCode", txbProgramCode.Text, IsAdd) |
SetSQlValue("ProgramName", txbProgramName.Text, IsAdd) |
SetSQlValue("ProgramDesc", txbProgramDesc.Text, IsAdd) |
SetSQlValue("UpdateUser", Membership.GetUser.ProviderUserKey.ToString, IsAdd) |
SetSQlValue("UpdateDT", Now, IsAdd) |
SetSQlValue("IsCanceled", chbIsCanceled.Checked, IsAdd) |
If IsAdd Then |
SetSQlValue("AddUser", Membership.GetUser.ProviderUserKey.ToString, IsAdd) |
SetSQlValue("AddDT", Now, IsAdd) |
Else |
SetSQlValue("ProgramKey", Convert.ToInt64(lblKey.Text), IsAdd) |
End If |
Return True |
End Function |
End Class |
Kenghot