I'm using the built-in advanced edit forms created by the Scheduler control. I am using SqlDataSource controls for my resources and for scheduler insert/update/deletes. I have one resource where I would like the user to be able to enter a custom value, while also being able to select from existing items (i.e. The resource is a list of buyers. I want them to be able to enter a new buyer and save the task with the newly created buyer).
I've made the RadComboBox control for the Buyer list to allow custom text and I handle the AppointmentCommand event checking if an insert/update command was raised and I then check if it's a new buyer and save it. I then add the new buyer to the list and select it.
Like so:
Protected Sub rsTasksNew_AppointmentCommand(ByVal sender As Object, ByVal e As Telerik.Web.UI.AppointmentCommandEventArgs) Handles rsTasksNew.AppointmentCommand |
Try |
'check if insert command |
If e.CommandName = "Insert" Or e.CommandName = "Update" Then |
Dim ddlBuyer As RadComboBox = CType(e.Container.FindControl("ResAssigned-To"), RadComboBox) |
'check for existing buyer with same name and set them as the selected index |
ddlBuyer.SelectedIndex = ddlBuyer.FindItemIndexByText(ddlBuyer.Text.Trim(), True) |
'hold buyer id |
Dim BuyerId As Integer = IIf(ddlBuyer.SelectedIndex > -1, ddlBuyer.SelectedValue, 0) |
'if new buyer being entered |
If BuyerId = 0 Then |
'save new buyer |
BuyerId = SaveBuyer(ddlBuyer.Text.Trim(), Session(SessionVariables.Cur_Client_ID)) |
'add buyer to list and set as selected |
ddlBuyer.Items.Add(New RadComboBoxItem(ddlBuyer.Text, BuyerId)) |
ddlBuyer.SelectedValue = BuyerId |
End If |
End If |
Catch ex As Exception |
End Try |
End Sub |
This isn't working for some reason. It keeps throwing this error:
Server Error in '/GoRentPro' Application. |
Invalid length for a Base-64 char array. |
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: Invalid length for a Base-64 char array. |
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: Invalid length for a Base-64 char array.] |
System.Convert.FromBase64String(String s) +0 |
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +72 |
System.Web.UI.LosFormatter.Deserialize(String input) +11 |
Telerik.Web.UI.AdvancedTemplate.ExtractResourceValues(IDictionary target) +598 |
Telerik.Web.UI.AdvancedTemplate.ExtractValues(Control container) +362 |
Telerik.Web.UI.RadScheduler.InsertAppointmentInline() +34 |
Telerik.Web.UI.RadScheduler.OnBubbleEvent(Object source, EventArgs args) +326 |
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 |
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118 |
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135 |
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 |
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 |
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175 |
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565 |
Version Information: Microsoft .NET Framework Version:2.0.50727.4200; ASP.NET Version:2.0.50727.4016 |
If you could tell if this even possible to do or if I'm doing it wrong. I am using the latest version of the controls, 2010.3.1314.
Thanks.