<telerik:RadGrid ID="RadGrid3" runat="server" Width="100%" AllowAutomaticUpdates="True" AllowMultiRowEdit="true" AllowPaging="false" DataSourceID="SqlDataSource3" EnableLinqExpressions="false" GridLines="None" OnItemDataBound="RadGrid3_ItemDataBound" OnPreRender="RadGrid3_PreRender" PageSize="10"> <MasterTableView Width="100%" CommandItemDisplay="Bottom" EditMode="InPlace" DataSourceID="SqlDataSource3" DataKeyNames="ProductAttributeDefKey,Value" AutoGenerateColumns="false"> <CommandItemTemplate> <asp:LinkButton ID="btnUpdateEdited" runat="server" CommandName="UpdateEdited" Visible='<%# RadGrid3.EditIndexes.Count > 0 %>'>Update Products</asp:LinkButton> <asp:LinkButton ID="btnCancel" runat="server" CommandName="CancelAll" CausesValidation="false" Visible='<%# RadGrid3.EditIndexes.Count > 0 || RadGrid3.MasterTableView.IsItemInserted %>'>Cancel editing</asp:LinkButton> </CommandItemTemplate> <Columns> <telerik:GridTemplateColumn DefaultInsertValue="1" DataField="SortOrder" HeaderText="Sort Order" SortExpression="SortOrder" UniqueName="SortOrder"> <EditItemTemplate> <telerik:RadNumericTextBox runat="server" ID="tbSortOrder" DbValue='<%# Bind("SortOrder") %>' ShowSpinButtons="true" MinValue="1" MaxValue="999" NumberFormat-DecimalDigits="0" Width="50px"> </telerik:RadNumericTextBox> </EditItemTemplate> <ItemTemplate> <%# Eval("SortOrder")%> </ItemTemplate> <ItemStyle CssClass="sortColumn" /> <HeaderStyle CssClass="sortColumn" /> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="ProductId" HeaderText="ProductId" SortExpression="ProductId" UniqueName="ProductId" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ProductAttributeDefKey" HeaderText="Def Key" SortExpression="ProductAttributeDefKey" UniqueName="ProductAttributeDefKey" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Name" HeaderText="Name" SortExpression="Name" UniqueName="Name" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="AttributeDataType" HeaderText="AttributeDataType" SortExpression="AttributeDataType" UniqueName="AttributeDataType" Visible="false"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn DataField="Value" HeaderText="Value" SortExpression="Value" UniqueName="Value" ForceExtractValue="Always"> <EditItemTemplate> </EditItemTemplate> <ItemTemplate> <%# Eval("Value")%> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> <EditFormSettings> <EditColumn ButtonType="ImageButton" /> </EditFormSettings> </MasterTableView></telerik:RadGrid><asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="" SelectCommand="procProductAttribute_Select" SelectCommandType="StoredProcedure" UpdateCommand="procProductAttribute_Update" UpdateCommandType="StoredProcedure"> <SelectParameters> <asp:Parameter Name="ProductId" Type="Int32" DefaultValue="52964" /> <asp:Parameter Name="IsCustom" Type="Boolean" DefaultValue="false" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="ProductId" Type="Int32" /> <asp:Parameter Name="ProductAttributeDefKey" Type="String" /> <asp:Parameter Name="AttributeDataType" Type="Int32" /> <asp:Parameter Name="Value" Type="String" /> </UpdateParameters></asp:SqlDataSource>protected void RadGrid3_PreRender(object sender, EventArgs e){ if (!IsPostBack) { foreach (GridItem item in RadGrid3.MasterTableView.Items) { if (item is GridEditableItem) { GridEditableItem editableItem = item as GridDataItem; editableItem.Edit = true; } } RadGrid3.Rebind(); }}protected void RadGrid3_ItemDataBound(object sender, GridItemEventArgs e){ if (e.Item is GridEditableItem && e.Item.IsInEditMode) { GridEditableItem item = (GridEditableItem)e.Item; GridTemplateColumnEditor editor = (GridTemplateColumnEditor)item.EditManager.GetColumnEditor("Value"); TableCell cell = (TableCell)editor.ContainerControl; Int32 id = (Int32)DataBinder.Eval(e.Item.DataItem, "AttributeDataType"); String value = null; if(DataBinder.Eval(e.Item.DataItem, "Value") != System.DBNull.Value) { value = (String)DataBinder.Eval(e.Item.DataItem, "Value"); } switch (id) { case 1: CheckBox checkBox = new CheckBox(); checkBox.Attributes.Add("Value", "1"); checkBox.Text = "1"; if (!String.IsNullOrWhiteSpace(value)) { if (value.Substring(0, 1) == "1" || value.Substring(0, 1).ToLower() == "t" || value.Substring(0, 1).ToLower() == "y") { checkBox.Checked = true; } else { checkBox.Checked = false; } } cell.Controls.Add(checkBox); break; case 2: case 6: case 7: RadNumericTextBox numericTextBox = new RadNumericTextBox(); numericTextBox.ID = "NumericTextBox1"; numericTextBox.ShowSpinButtons = true; Int32 tempInt; if (Int32.TryParse(value, out tempInt)) { numericTextBox.Value = tempInt; } cell.Controls.Add(numericTextBox); break; case 3: default: TextBox textBox = new TextBox(); textBox.ID = "TextBox1"; if (!String.IsNullOrWhiteSpace(Server.HtmlDecode(value))) { textBox.Text = value; } cell.Controls.Add(textBox); break; case 4: RadTextBox textArea = new RadTextBox(); textArea.ID = "TextArea1"; textArea.TextMode = InputMode.MultiLine; if (!String.IsNullOrWhiteSpace(Server.HtmlDecode(value))) { textArea.Text = value; } cell.Controls.Add(textArea); break; case 5: RadDatePicker dp = new RadDatePicker(); dp.ID = "DatePicker1"; DateTime tempDateTime; if (DateTime.TryParse(value, out tempDateTime)) { dp.SelectedDate = tempDateTime; } cell.Controls.Add(dp); break; case 8: //lookup here break; } }}Having some trouble updating my grid. Ive added the controls in programatically as they differ per row, the text box, rad text box and numeric text boxes update no problem, but the date picker sends through an empty string and checkbox is always false. I will also be adding dropdown box which will no doubt have the same problems.
edit: checkbox always has original value, so if its true it will always get set to true on update no matter the state of the checkbox, same is happening for textbox and any other control
Any idea whats causing this or what im missing?
Thanks
Craig