Sorry to be the one keeping this thread alive. I gave up on using the checkbox control in a radgrid's insert mode since it was giving me such a headache. I decided it is the best model though for another site I'm working on so I'm back to the same issue. I'm including the code I've created (.aspx and .vb). It's fairly short and to the point. I've be very appreciative if anyone at Telerik can look at it and let me know what I'm doing wrong here. I'm using q3 rad controls.
<%@ Page Language="VB" MasterPageFile="~/masterpages/admin.master" AutoEventWireup="false" CodeFile="AdminLinksPending.aspx.vb" Inherits="admin_AdminLinksPending" title="Untitled Page" Theme="admin" %>
<%@ Register Assembly="RadGrid.Net2" Namespace="Telerik.WebControls" TagPrefix="radG" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div style="margin: 20px 0px 0px 20px;">
<br />
<h2>Administrate Pending Links</h2>
<br />
<br />
<radG:RadGrid AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" AutoGenerateColumns="False" ID="rgPendingLinks" runat="server" DataSourceID="adsLinks" EnableAJAX="True" Width="600px"
HorizontalAlign="NotSet" Skin="Mac" OnItemDeleted="rgPendingLinks_ItemDeleted" OnItemInserted="rgPendingLinks_ItemInserted" OnItemUpdated="rgPendingLinks_ItemUpdated" >
<MasterTableView DataSourceID="adsLinks" DataKeyNames="LINKID" CommandItemDisplay="TopAndBottom" RetrieveNullAsDBNull="true">
<ExpandCollapseColumn Visible="False" FilterImageUrl="" SortAscImageUrl="" SortDescImageUrl="">
<HeaderStyle Width="19px" />
</ExpandCollapseColumn>
<RowIndicatorColumn Visible="False">
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<EditFormSettings EditFormType="Template">
<EditColumn FilterImageUrl="" SortAscImageUrl="" SortDescImageUrl="">
</EditColumn>
<FormTemplate>
<table>
<tr>
<td>Site name
</td>
<td><asp:TextBox ID="txtSiteName" Text='<%# Bind ( "SITENAME" ) %>' Width="400px" runat="server" ></asp:TextBox>
</td>
</tr>
<tr>
<td>Site address
</td>
<td><asp:TextBox ID="txtSiteAddress" Text='<%# Bind ( "SITEADDRESS" ) %>' Width="400px" runat="server" ></asp:TextBox>
</td>
</tr>
<tr>
<td>Description
</td>
<td><asp:TextBox TextMode="MultiLine" Rows="5" ID="txtDescription" Text='<%# Bind ( "DESCRIPTION" ) %>' Width="400px" runat="server" ></asp:TextBox>
</td>
</tr>
<tr>
<td>Webmaster name
</td>
<td><asp:TextBox ID="txtWebMasterName" Text='<%# Bind ( "WEBMASTERNAME" ) %>' Width="400px" runat="server" ></asp:TextBox>
</td>
</tr>
<tr>
<td>Email
</td>
<td><asp:TextBox ID="txtEmail" Text='<%# Bind ( "EMAIL" ) %>' Width="400px" runat="server" ></asp:TextBox>
</td>
</tr>
<tr>
<td>Password
</td>
<td><asp:TextBox TextMode="Password" ID="txtPassword" Text='<%# Bind ( "PASSWORD" ) %>' Width="400px" runat="server" ></asp:TextBox>
</td>
</tr>
<tr>
<td>Active
</td>
<td><asp:CheckBox id="cbActive" runat="server" Checked='<%# BIND ("ACTIVE") %>' />
</td>
</tr>
<tr>
<td>Created on
</td>
<td><asp:Label id="lblCreatedOn" runat="server" Text='<%# BIND ( "CREATEDON" ) %>' />
</td>
</tr>
<tr>
<td class="DisplayArea"></td>
<td align="right" class="EditArea">
<asp:Button ID="btnUpdate" Text='<%# IIf(CType(Container,GridItem).OwnerTableView.IsItemInserted,"Insert","Update") %>'
runat="server" CommandName='<%# IIf(CType(Container,GridItem).OwnerTableView.IsItemInserted ,"PerformInsert","Update") %>'>
</asp:Button>
<asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel"></asp:Button>
</td>
</tr>
</table>
</FormTemplate>
</EditFormSettings>
<Columns>
<radG:GridEditCommandColumn FilterImageUrl="" SortAscImageUrl="" SortDescImageUrl="" HeaderStyle-Width="100px">
</radG:GridEditCommandColumn>
<radG:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="column" HeaderStyle-Width="100px">
</radG:GridButtonColumn>
<radG:GridBoundColumn DataField="SITENAME" HeaderText="Site Name" SortExpression="SITENAME"
UniqueName="SITENAME">
<ItemStyle Width="200px" />
</radG:GridBoundColumn>
<radG:GridBoundColumn DataField="SITEADDRESS" HeaderText="Site Address" SortExpression="SITEADDRESS"
UniqueName="SITEADDRESS">
<ItemStyle Width="200px" />
</radG:GridBoundColumn>
<radG:GridBoundColumn DataField="CREATEDON" HeaderText="Created On" SortExpression="CREATEDON" DataFormatString="{0:MM/dd/yy}"
UniqueName="CREATEDON">
<ItemStyle Width="100px" />
</radG:GridBoundColumn>
</Columns>
</MasterTableView>
</radG:RadGrid>
<asp:Label id="Label1" runat="server"></asp:Label>
<asp:Label id="Label2" runat="server"></asp:Label>
<asp:AccessDataSource ID="adsLinks" runat="server" DataFile="~/App_Data/ericdowneydesigns2002.mdb" DeleteCommand="DELETE FROM [tblLinks] WHERE [LinkID] = ?" InsertCommand="INSERT INTO [tblLinks] ([SiteName], [SiteAddress], [Description], [WebmasterName], [Email], [Password], [Active]) VALUES (?, ?, ?, ?, ?, ?, ?)" SelectCommand="SELECT [LinkID], [SiteName], [SiteAddress], [Description], [WebmasterName], [Email], [Password], [CreatedOn], [Active] FROM [tblLinks] WHERE ([Active] = ?) ORDER BY [CreatedOn]" UpdateCommand="UPDATE [tblLinks] SET [SiteName] = ?, [SiteAddress] = ?, [Description] = ?, [WebmasterName] = ?, [Email] = ?, [Password] = ?, [CreatedOn] = ?, [Active] = ? WHERE [LinkID] = ?">
<DeleteParameters>
<asp:Parameter Name="LinkID" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="SiteName" Type="String" />
<asp:Parameter Name="SiteAddress" Type="String" />
<asp:Parameter Name="Description" Type="String" />
<asp:Parameter Name="WebmasterName" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="Password" Type="String" />
<asp:Parameter Name="CreatedOn" Type="DateTime" />
<asp:Parameter DefaultValue="False" Name="Active" Type="Boolean" />
<asp:Parameter Name="LinkID" Type="Int32" />
</UpdateParameters>
<SelectParameters>
<asp:Parameter DefaultValue="False" Name="Active" Type="Boolean" />
</SelectParameters>
<InsertParameters>
<asp:Parameter Name="SiteName" Type="String" />
<asp:Parameter Name="SiteAddress" Type="String" />
<asp:Parameter Name="Description" Type="String" />
<asp:Parameter Name="WebmasterName" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="Password" Type="String" />
<asp:Parameter DefaultValue="False" Name="Active" Type="Boolean" />
</InsertParameters>
</asp:AccessDataSource>
</div>
</asp:Content>
Imports System.Drawing
Imports Telerik.WebControls
Partial Class admin_AdminLinksPending
Inherits System.Web.UI.Page
Protected Sub rgPendingLinks_ItemCommand(ByVal source As Object, ByVal e As Telerik.WebControls.GridCommandEventArgs) Handles rgPendingLinks.ItemCommand
If e.CommandName = RadGrid.InitInsertCommandName Then '"Add new" button clicked
e.Canceled = True
'Prepare an IDictionary with the predefined values
Dim newValues As System.Collections.Specialized.ListDictionary = New System.Collections.Specialized.ListDictionary()
'set default checked state for checkbox inside the EditItemTemplate
newValues("ACTIVE") = False
'Insert the item and rebind
e.Item.OwnerTableView.InsertItem(newValues)
Dim editColumn As GridEditCommandColumn = CType(rgPendingLinks.MasterTableView.GetColumn("EditCommandColumn"), GridEditCommandColumn)
editColumn.Visible = False
Else
Dim editColumn As GridEditCommandColumn = CType(rgPendingLinks.MasterTableView.GetColumn("EditCommandColumn"), GridEditCommandColumn)
If Not editColumn.Visible Then
editColumn.Visible = True
End If
End If
End Sub
Protected Sub rgPendingLinks_ItemUpdated(ByVal source As Object, ByVal e As Telerik.WebControls.GridUpdatedEventArgs) Handles rgPendingLinks.ItemUpdated
If Not e.Exception Is Nothing Then
e.KeepInEditMode = True
e.ExceptionHandled = True
DisplayMessage(True, "Link " + e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("LINKID").ToString() + " cannot be updated. Reason: " + e.Exception.Message)
Else
DisplayMessage(False, "Link " + e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("LINKID").ToString() + " updated")
End If
End Sub
Protected Sub rgPendingLinks_ItemDeleted(ByVal source As Object, ByVal e As Telerik.WebControls.GridDeletedEventArgs) Handles rgPendingLinks.ItemDeleted
If Not e.Exception Is Nothing Then
e.ExceptionHandled = True
DisplayMessage(True, "Link " + e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("LINKID").ToString() + " cannot be deleted. Reason: " + e.Exception.Message)
Else
DisplayMessage(False, "Link " + e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("LINKID").ToString() + " deleted")
End If
End Sub
'Check(DataBinder.Eval(Container.DataItem,"ACTIVE"))
Protected Function Check(ByVal objStatus As Object) As Boolean
If (objStatus.ToString().Equals("Yes")) Then
Return True
End If
Return False
End Function
Protected Sub rgPendingLinks_ItemInserted(ByVal source As Object, ByVal e As Telerik.WebControls.GridInsertedEventArgs) Handles rgPendingLinks.ItemInserted
If Not e.Exception Is Nothing Then
e.ExceptionHandled = True
e.KeepInInsertMode = False
DisplayMessage(True, "Link cannot be inserted. Reason: " + e.Exception.Message)
Else
DisplayMessage(False, "Link inserted")
End If
End Sub
Private Sub DisplayMessage(ByVal isError As Boolean, ByVal text As String)
Me.Label1.Font.Bold = True
Me.Label1.Visible = True
If (isError) Then
Me.Label1.ForeColor = Color.Red
Else
Me.Label1.ForeColor = Color.Green
End If
Me.Label1.Text = text
End Sub
End Class